פרק קל לראות מתיאור זה שהערך הנשלף מהמחסנית הוא תמיד הערך האחרון שנדחף אליה. הפרוטוקול המגדיר את דרך הגישה לערכים נקרא LIFO ראשי התיבות של המילים:

Size: px
Start display at page:

Download "פרק קל לראות מתיאור זה שהערך הנשלף מהמחסנית הוא תמיד הערך האחרון שנדחף אליה. הפרוטוקול המגדיר את דרך הגישה לערכים נקרא LIFO ראשי התיבות של המילים:"

Transcription

1 פרק ותור מחסנית בפרק זה נציג שני סוגי אוספים כלליים. שני הסוגים מאפשרים ליצור אוספים דינמיים, לא מוגבלים בגודלם. כל אחד מהם מאופיין על ידי פרוטוקול המגדיר דרך גישה ספציפית לנתונים שבאוסף, כולל אופן ההכנסה וההוצאה של נתונים. לכל אחד משני הסוגים נציג שתי מחלקות המממשות אותו: מחלקה אחת מייצגת את הנתונים בעזרת מערך, והאחרת מייצגת אותם בעזרת שרשרת חוליות. שתי המחלקות, המממשות כל אחד משני סוגי האוסף, תומכות בדיוק באותן פעולות ממשק, כולל פרוטוקול הגישה לנתונים, ושתיהן מסתירות לגמרי את הייצוג והמימוש, כך שלקוח אינו יכול לדעת באיזה משני המימושים הוא משתמש, ואינו יכול לפגוע בנכונות המימוש. מכאן ששני סוגי האוספים שיוצגו בפרק זה הם טיפוסי נתונים מופשטים. א. המחסנית מחסנית (Stack) היא סוג של אוסף התומך בפעולות הכנסה והוצאה, כך שמתקיימת התכונה הבאה: הוצאת ערך ממחסנית אפשרית רק כאשר היא אינה ריקה והיא מחזירה תמיד את הערך שהוכנס אחרון, מבין הערכים הקיימים במחסנית. ניתן לחשוב על מחסנית כסדרה, שהפעולות עליה מתבצעות רק בקצה אחד של הסדרה, הנקרא ראש המחסנית (כמתואר באיור). הכנסת ערך למחסנית מוסיפה ערך חדש בראש המחסנית. הוצאת ערך מהמחסנית, מסירה את הערך המצוי בראש המחסנית וחושפת את הערך הבא בסדרה. נהוג לכנות את פעולת ההכנסה למחסנית בשם דחיפה, ואת פעולת ההוצאה בשם: שליפה. קל לראות מתיאור זה שהערך הנשלף מהמחסנית הוא תמיד הערך האחרון שנדחף אליה. הפרוטוקול המגדיר את דרך הגישה לערכים נקרא LIFO ראשי התיבות של המילים:.Last In First Out האיור שלפניכם הוא "תצלום" מצב רגעי של מחסנית לאחר שהוכנסו לתוכה הערכים: 7, 3, 5, 9, בזה אחר זה (מימין לשמאל). ערכים הכנסת ערכים הוצאת ראש המחסנית ניתן לראות שהערך 7, שהוכנס אחרון, נמצא בראש המחסנית.

2 עיצוב תוכנה מבוסס עצמים ג'אווה באיור הבא ניתן לראות סדרת תצלומי המחסנית לאחר הכנסת כל אחד מהערכים לתוכה: מצב של המחסנית, המתארים (מימין לשמאל), את ראש המחסנית ראש המחסנית ראש המחסנית 5 9 ראש 9 המחסנית,7 אם לאחר השלב הרביעי המוצג שלפני האחרון. נשלוף ערך מהמחסנית, י צא הערך והמחסנית תחזור למצב ב. שימושים במחסנית המחסנית משתלבת באופן טבעי ביישומים קליטתם. להלן מספר דוגמאות: שבהם יש צורך לאחזר נתונים באופן הפוך לסדר דוגמה 1: מנגנון ה- Undo (ביטול פעולה אחרונה) מנגנון ה- Undo המוכר למשל ממעבד התמלילים Word הוא הלחצן שלחיצה עליו מבטלת את הפעולה האחרונה שבוצעה. המשתמש יכול לחזור וללחוץ על לחצן זה ללא הגבלה עד לביטול הפעולה הראשונה שעשה. מנגנון ה- Undo משתמש במחסנית בכל פעם שהמשתמש מבצע פעולה כלשהי (כגון: כתיבה, ציור, מחיקה וכו'), נדחפים למחסנית תיאור הפעולה והפרמטרים שלה. כאשר המשתמש ילחץ על לחצן ה- Undo, תיאור הפעולה האחרונה שבוצעה יישלף מראש המחסנית, ופעולה זו תבוטל. לדוגמה, המשתמש ביצע 7 פעולות בזו אחר זו. באיור שלפניכם ניתן לראות את מצבם של המסך ושל מחסנית ה- Undo לאחר כל פעולה שהמשתמש ביצע:. 1 צייר קו. 2 צייר נקודה. 3 צייר קו.4 Undo נקודה (...) קו (...) נקודה (...) קו (...) נקודה (...) קו (...) קו (...) קו (...).5 צייר מצולע. 6 Undo Undo.7 קו (...) נקודה (...) קו (...) מצולע (...) נקודה (...) קו (...)

3 פרק 8 מחסנית ותור דוגמה 2: מחסנית זמן ריצה עוד דוגמה לשימוש במחסנית היא מחסנית זמן ריצה stack).(run time בעזרת מנגנון זה המחשב עוקב אחר זרימת התוכנית כאשר יש בה פעולות המזמנות זו את זו. כאשר יש זימון לפעולה מסוימת, נדחפת לתוך המחסנית רשומה ובה בין השאר, ערכי הפרמטרים לזימון והנקודה שאליה צריכה התוכנית לחזור לאחר ביצוע הזימון. כאשר הפעולה מסתיימת, נשלפת הרשומה שבראש המחסנית וביצוע התוכנית ממשיך מנקודת החזרה הרשומה בה. ביטוי חשבוני תקין מהו נגדיר דוגמה 3: בדיקת תקינות סוגריים ביטוי חשבוני מכיל לעתים קרובות סוגריים מסוגים שונים. מבחינת סוגריים: ביטוי המכיל סוגריים מסוגים שונים, במספר לא מוגבל, ובלבד שיהיו מאוזנים. איזון הסוגריים מחייב שמספר הסוגריים-הפותחים והסוגריים-הסוגרים יהיה שווה, וכן לכל פותח יימצא סוגר מאותו סוג במקום המתאים. לדוגמה, הביטויים האלה תקינים: ) ) a ( ( ( b + a - 2 * 7 ) + 32 * ( 37 * ) / [ 5 + 1] - 4 (שימו לב: הביטוי האחרון תקין מבחינת הסוגריים, אף שכביטוי חשבוני הוא אינו תקין). a + ( ( c ( [ 3 + a ) + 4 ] [ ) ( 5-3 ] * [ 2-3 ] ואילו הביטויים האלה אינם תקינים: בבדיקת תקינות סוגריים אנו מתמקדים רק בפותחים ובסוגרים המופיעים בביטוי. כאשר קיימים בביטוי סוגי סוגריים שונים, אין זה מספיק למנות את הסוגריים, צריך גם לדעת מהו סדר הופעתם. בעיה זו דומה למנגנון ה- Undo שעסקנו בו קודם. גם שם היה צורך לזכור את הפעולות שהופיעו ואת סדר הופעתן. מתיאור הבעיה נראה שמחסנית היא הכלי הנכון לבדיקת האיזון. נסרוק את הביטוי משמאל לימין. בכל פעם שניתקל בפותח, נדחוף אותו למחסנית. כאשר נגיע לסוגר נשלוף איבר מראש המחסנית ונבדוק אם הוא הפותח המתאים בסוגו לסוגר הנוכחי. אם כן, התת-ביטוי שבין הפותח לסוגר תקין, שכן אין בו סוגריים נוספים, או שיש בו זוגות מאוזנים של סוגריים. אם הסוגר והפותח אינם מאותו הסוג, הביטוי בוודאי אינו תקין, אחרי הודעה מתאימה נעצור את תהליך הבדיקה. נמשיך בבדיקה באותו האופן. כל פותח שנקרא מהקלט יידחף למחסנית, וכל סוגר יוביל לניסיון לשלוף פותח מהמחסנית.

4 עיצוב תוכנה מבוסס עצמים ג'אווה תהליך הבדיקה יסתיים באחד משלושת המקרים האלה: אם בשלב מסוים הסוגר והפותח הנבחנים אינם מתאימים, הביטוי אינו תקין. אם הגענו לסוגר והמחסנית ריקה, הביטוי אינו תקין. כאשר הגענו לסוף הקלט: אם המחסנית לא התרוקנה, סימן שנותר פותח שטרם הותאם לו סוגר, והביטוי אינו תקין; אם המחסנית ריקה, הביטוי תקין. בדיקת תקינות סוגריים משמעותית גם בעת הידור של תוכניות מחשב. גם כאן מופיעים סוגי סוגריים שונים, וחוסר איזון והתאמה בין כמות הפותחים והסוגרים יגרום לבעיות הידור. לסיכום: בכל הדוגמאות שראינו בא לידי ביטוי פרוטוקול ה- LIFO. בדוגמת ה- Undo הפעולה האחרונה שהתבצעה ממוקמת בראש המחסנית. פעולה זו תישלף בעת ביצוע ה- Undo, ואנו נחזור למצב שהיה לפני ביצועה. בדוגמה של מחסנית זמן ריצה, הרשומה המתארת את מיקום הזימון האחרון בתוכנית ממוקמת בראש המחסנית. בתום זימון זה ועם שליפת הרשומה ניתן להמשיך בריצה תקינה של התוכנית. בדוגמה לבדיקת איזון סוגריים, הפותח האחרון ממוקם בראש המחסנית. כאשר ייקרא סוגר, יישלף הפותח ויושו וה לסוגר. על פי ההשוואה נחליט כיצד להתקדם בבדיקה. ג. ממשק המחלקה מחסנית לפני שנציג מחלקה,Stack המממשת את סוג האוסף שתיארנו, הבה נבחן אילו פעולות יש לכלול בממשק שלה. פעולות הממשק ודאי יכללו את פעולות ההכנסה וההוצאה שהזכרנו לעיל. לצורכי נוחות, מקובל להפריד את השליפה ממחסנית מפעולת הצצה לתוכה המאפשרת לראות את הערך השמור בראש המחסנית מבלי להוציאו ממנה. מהדוגמאות לשימוש במחסנית, שהוצגו למעלה, עולה בבירור הצורך להגדיר פעולה הבודקת את ריקנות המחסנית: פעולת השליפה ממחסנית אפשרית רק אם יש במחסנית איברים. כמו כן סיום תוכניות המשתמשות במחסנית יהיה תלוי פעמים רבות בהגעה למצב של מחסנית ריקה. לכן יש להציע בממשק בדיקה האם המחסנית ריקה או לא. ולסיום, כמקובל לגבי כל טיפוס נתונים המוגדר בעזרת מחלקה, יש להגדיר פעולה המחזירה את תיאור המחסנית וכן להגדיר פעולה בונה. המחסנית היא סוג של אוסף כללי, והפעולות עליה אינן משתמשות בתכונות או בפעולות ייחודיות לנתונים שבה, לכן נגדיר את המחסנית כמחלקה גנרית.

5 פרק 8 מחסנית ותור ממשק המחלקה מחסנית Stack<T> המחלקה מגדירה טיפוס אוסף בעל פרוטוקול LIFO להכנסה והוצאה של ערכים. Stack() boolean isempty() הפעולה בונה מחסנית ריקה הפעולה מחזירה 'אמת' אם המחסנית הנוכחית ריקה, 'שקר' אחרת void push (T x) x הפעולה (דחיפה) מכניסה את הערך לראש המחסנית הנוכחית T pop() T top() String tostring() הפעולה מוציאה את הערך שבראש המחסנית הנוכחית ומחזירה אותו (שליפה). הנחה: המחסנית הנוכחית אינה ריקה הפעולה מחזירה את הערך שבראש המחסנית הנוכחית מבלי להוציאו. הנחה: המחסנית הנוכחית אינה ריקה הפעולה מחזירה תיאור של המחסנית, כסדרה של ערכים, במבנה הזה ) 1 x הוא האיבר שבראש המחסנית): [x 1, x 2,, x n ] הממשק Stack<T> הוא הגדרה של טיפוס נתונים מופשט, המחסנית ולתכונותיהן, ואינו עוסק כלל בייצוג המחסנית. שכן הוא מתייחס רק לפעולות של נזכיר כי בעת יצירת מחסנית יש לציין את הטיפוס הקונקרטי של המחסנית. אנו נשתמש בנוסחים מקוצרים בסגנון: "מחסנית מטיפוס מסוים" במקום "מחסנית שאיבריה מטיפוס מסוים". למשל, באומרנו "מחסנית מטיפוס תו" או "מחסנית תווים " נתכוון למחסנית שאיבריה הם מטיפוס תו. הקיצורים הללו ישמשו אותנו גם בדיונים על אוספים נוספים בהמשך היחידה.

6 עיצוב תוכנה מבוסס עצמים ג'אווה ד. שימוש בפעולות הממשק ד. 1. קוד לדוגמה בקוד שלפניכם נוצרות מחסניות מטיפוסים שונים. המחסניות מפעילות את פעולות הממשק. לצד הקוד מופיעים איורים המדגימים את מצב המחסניות תוך כדי ריצת התוכנית: public static void main(string[] args) מחסנית מחרוזות מחסנית שלמים מחסנית שלמים יצירת מחסניות מטיפוסים שונים // Stack<Integer> s1 = new Stack<Integer>(); Stack<Integer> s2 = new Stack<Integer>(); Stack<String> s3 = new Stack<String>(); s1 s2 s3 דחיפת ערכים למחסניות // s1.push(4); s1.push(7); s1.push(2); s2.push(11); s3.push( Moshe ); s1 11 s2 Moshe s3 שליפת ערך ממחסנית אחת ודחיפתו לאחרת // int x = s1.pop(); s2.push(x); 7 4 s s2 Moshe s3 העתקת ערך מראש מחסנית למחסנית אחרת // x = s1.top(); s2.push(x); 7 4 s s2 Moshe s3 שליפה מותנית // if (!s2.isempty()) s1.push(s2.pop()); s s2 Moshe s3 ד. 2. היפוך סדרת תווים שאורכה לא ידוע נכתוב תוכנית הקולטת סדרת של תווים, תו אחר תו. הסדרה מסתיימת בלחיצת מקש ה- Enter. בתום הקליטה תודפס סדרת התווים בסדר הפוך לסדר קליטתה. את המשימה מתאים לפתור בעזרת מחסנית מכמה סיבות. ראשית, המטרה הסופית של התוכנית היא היפוך סדר התווים, ולכן שימוש במחסנית עולה על הדעת שכן הוצאת האיברים ממחסנית הופכת את הסדר שבו נקלטו התווים. שנית, אורך הקלט אינו מוגבל, ולכן האופי הדינמי של המחסנית ישרת אותנו היטב בביצוע משימה זו.

7 פרק 8 מחסנית ותור עקבו אחר התוכנית שלפניכם, המציגה פתרון לבעיה תוך שימוש במחסנית של תווים: public static void main(string[] args) בניית מחסנית עזר לשמירת התווים הנקלטים // Stack<Character> stk = new Stack<Character>(); קליטת סדרת תווים // System.out.print("Enter a sequence of characters: "); Scanner in = new Scanner(System.in); קליטת סדרת תווים רציפה in.usedelimiter("");// char ch = in.next().charat(0); while (ch!= '\r') stk.push(ch); ch = in.next().charat(0); הדפסת סדרת התווים שנקלטה במהופך // System.out.print("The reversed sequence: "); while (!stk.isempty()) System.out.print(stk.pop()); ה. כתיבת המחלקה מחסנית עצם מטיפוס מחסנית שומר בתוכו את אוסף הערכים שהוכנסו למחסנית תוך שמירה על סדר הכנסתם. לכן בכתיבת מחלקה למימוש הממשק שלעיל עלינו להחליט, ראשית לכול, על ייצוג מתאים לאחסון ערכים אלה. לאחר מכן נממש את פעולות ממשק המחסנית על פי ייצוג זה. ה. 1. שני ייצוגים למחלקה מחסנית בפרקים הקודמים ראינו שקיימות שתי דרכים לאחסן אוסף בזיכרון: הדרך הסטטית באמצעות מערך, והדרך הדינמית באמצעות שרשרת חוליות. תחילה, נסקור בקצרה את ייצוג המחסנית באמצעות מערך. ה ייצוג מחסנית באמצעות מערך הייצוג של המחלקה: public class Stack<T> public static final int STACK_SIZE = 100; private T[] data; private int top; משתנה בשם top מטיפוס int יכיל את מספר התא במערך שבו נמצא הערך שבראש המחסנית. כאשר המחסנית ריקה ערכו של top יהיה שווה ל-( 1 -). בעת דחיפת ערך למחסנית נגדיל את ערכו של top באחד, ונציב את הערך החדש בתא שמספרו.top כאשר נרצה לשלוף ערך מן המחסנית, נחזיר את הערך שבמקום,top ונקטין את ערכו של top באחד.

8 עיצוב תוכנה מבוסס עצמים ג'אווה.STACK_SIZE כיוון שבעת יצירת המערך עלינו לקבוע את גודלו, נגדיר את המשתנה באופן שרירותי נקבע את ערכו ל מה יקרה אם בפועל המשתמש יכניס למחסנית רק 3 ערכים במשך כל התוכנית? המערך עדיין יהיה בגודל 100 (שכן המערך מוגדר בפעולה הבונה של המחסנית, לפני פעולות ההכנסה) והזיכרון של 97 תאים נוספים יתבזבז. מה יקרה אם המשתמש ירצה להכניס 101 ערכים? אזי כאשר המשתמש יפעיל את הפעולה push( ) להכנסת הערך ה- 101, קוד הפעולה יגלה כי אין מקום במערך, יקצה מערך גדול יותר, יעתיק לשם את הערכים מהמערך הקיים, ורק אז יוסיף את הערך הנוסף. ברור שמחירה של פעולת ההכנסה במקרה זה גבוה באופן משמעותי יחסית למקרה שבו המערך אינו מלא.? כתבו את המחלקה Stack<T> כאשר היא מיוצגת על ידי מערך. לסיכום: החיסרון שבבחירת מערך כמייצג של המחסנית הוא בכך שהמערך הוא זיכרון סטטי ואינו יכול לגדול ולקטון כרצוננו. "הגדלת" מערך פירושה למעשה הקצאת מערך חדש, גדול יותר, והעתקת תוכן המערך הנתון אל המערך החדש. ה ייצוג מחסנית באמצעות שרשרת חוליות כיוון שהמחסנית דינמית, ואפשר להכניס אליה ערכים ולהוציאם ממנה, ואין מגבלה על מספר הערכים שבתוכה, מתאים מאוד לייצגה בעזרת שרשרת חוליות. השרשרת מאפשרת לשמור בכל רגע נתון בדיוק את מספר הערכים הקיימים במחסנית ואינה מבזבזת זיכרון נוסף. אנו נציג ייצוג המשתמש בשרשרת חוליות חד-כיוונית. להלן הייצוג החדש: public class Stack<T> private Node<T> first;... את שרשרת החוליות מחזיקה תכונה פנימית פרטית של המחלקה מחסנית. התכונה היא מטיפוס חוליה ונקראת,first וכאשר המחסנית אינה ריקה, היא תפנה לחוליה הראשונה בשרשרת. הפעילות על המחסנית מתבצעת רק בקצה אחד של שרשרת החוליות, שכן דחיפה ושליפה של ערכים ממחסנית נעשית רק דרך ראש המחסנית. ראש המחסנית יכול להיות תחילת השרשרת או סופה. החלטה על הקצה הרצוי תיעשה לאור שיקולי יעילות שבהם נעסוק בהמשך. בייצוג הנוכחי נקבע כי ראש המחסנית יהיה תחילת שרשרת החוליות. כלומר, התכונה first מכילה הפניה לחוליה שבראש המחסנית ומאפשרת גישה ישירה אליה.

9 פרק 8 מחסנית ותור נראה מחסנית של שלמים (מימין), ואת ייצוגה בעזרת תרשים עצמים (משמאל): stk Stack<Integer> first null המחסנית ראש ראש המחסנית stk כאמור, הכנסה והוצאה של איברים מהמחסנית יתבצעו בתחילת שרשרת החוליות, שהיא ראש המחסנית. שימו לב כי בייצוג זה השרשרת "עטופה" במחלקה,Stack המציגה למשתמש הפשטה של רעיון המחסנית. כך, בעוד ששרשרת חוליות לעולם אינה ריקה, המחסנית יכולה להיות ריקה, בדיוק כפי שהרשימה הכיתתית יכולה הייתה להיות ריקה. מצב זה של מחסנית ריקה מיוצג על ידי כך שהערך בתכונה first הוא.null stk Stack<Integer> first null ה. 2. מימוש הפעולות לאחר שבחרנו לייצג את המחסנית באמצעות שרשרת חוליות, נעבור לממש את פעולות המחלקה על פי ייצוג זה. להלן תרשים UML של ממשק המחלקה מחסנית: הפעולה הבונה נבנה מחסנית ריקה על ידי כך שנציב ב- first את הערך.null ערך זה משמעותו שהמחסנית ריקה: public Stack() this.first = null; Node<T> first Stack () Stack<T> boolean isempty () void push (T x) T pop() T top() String tostring()

10 עיצוב תוכנה מבוסס עצמים ג'אווה בדיקת ריקנות נבדוק האם המחסנית ריקה באמצעות בדיקת ההפניה שבתכונה :first הכנסה (דחיפה) public boolean isempty() return this.first == null; כאשר נרצה להכניס ערך למחסנית יהיה עלינו לייצר חוליה חדשה המכילה אותו, ולדחוף אותה לראש המחסנית, כלומר למקום הראשון בשרשרת החוליות. נזכיר כי בפרק הקודם ראינו כי פעולה אינה יכולה להכניס חוליה למקום הראשון בשרשרת חוליות המועברת אליה כפרמטר. מיד נראה כי עכשיו, כאשר השרשרת עטופה על ידי המחלקה מחסנית, אין בעיה להכניס חוליה למקום הראשון בשרשרת. כדי להכניס את החוליה החדשה כחוליה ראשונה בשרשרת החוליות, מבלי לאבד את שרשרת החוליות, עלינו לקבוע את הערך next של החוליה החדשה, כך שיצביע לחוליה הראשונה בשרשרת הקיימת. זאת ניתן לעשות בעת יצירת החוליה. לאחר מכן יש לעדכן ההפניה,first כך שתצביע אל החוליה החדשה. לפניכם הקוד המבצע את הדחיפה: public void push (T x) this.first = new Node<T>(x, this.first);? הסבירו מדוע אין בקוד זה שום בעיה בהכנסת חוליה למקום הראשון בשרשרת. הוצאה (שליפה) כדי לשלוף איבר מהמחסנית עלינו לנתק את החוליה הראשונה מהשרשרת, ולעדכן את,first כך שיפנה אל החוליה העוקבת (אם יש כזו). כמו בהכנסה, גם הוצאת חוליה ניתנת לביצוע ללא בעיות. לפני ניתוק החוליה אנו שומרים את ערכה במשתנה שערכו יהיה ערך ההחזרה של הפעולה. נזכיר כי לא ניתן לבצע הכנסה של חוליה או הוצאת חוליה משרשרת חוליות המועברת כפרמטר לפעולה, כאשר מדובר בחוליה הראשונה בשרשרת. לפניכם קוד הפעולה: public T pop() T x = this.first.getinfo(); this.first = this.first.getnext(); return x;

11 פרק 8 מחסנית ותור התכונה first היא המשתנה היחיד המפנה לחוליה הראשונה בשרשרת, ואין שום הפניה חיצונית אל חוליה כלשהי בשרשרת. בסיום הפעולה, התכונה first אינה מפנה עוד אל החוליה הראשונה המקורית, ולכן אין אליה שום הפניה. 'אספן הזבל' ידאג לשחרר את החוליה מהזיכרון. לא ניתן לבצע את הפעולה אם המחסנית ריקה, ובכל זאת איננו בודקים מצב זה בתחילת הפעולה. אנו מסתמכים על ההנחה, כפי שהיא מופיעה בהגדרת הפעולה בממשק, ולפיה אין לזמן את הפעולה אם המחסנית ריקה. האחריות על בדיקת הריקנות היא על המשתמש במחסנית. הערה: בחרנו לממש את המחלקה כך שגם ההכנסה וגם ההוצאה של הערכים בשרשרת החוליות ייעשו במקום הראשון בשרשרת. ניתן היה לבחור שהן ההכנסה והן ההוצאה ייעשו מהקצה האחר של שרשרת החוליות, כלומר להתייחס לחוליה האחרונה כאל ראש המחסנית.? חשבו את היעילות של פעולות הממשק עבור הייצוג החלופי המתואר לעיל. תיאור המחסנית הפעולה tostring() מחזירה את סדרת הערכים השמורים במחסנית כך שהם מופיעים בתוך סוגריים מרובעים ומופרדים בעזרת פסיקים. האיבר השמאלי ביותר הוא זה הנמצא בראש המחסנית. לסיכום, נתבונן בממשקי הפעולות ובמימושיהן. קל לראות כי ייצוג המחסנית אינו חשוף למשתמש במחלקה: כל הפעילות על החוליות היא פנימית למימוש, ופעולות הממשק אינן מאפשרות גישה לחוליות, ולכן לא ניתן לפגוע במבנה המחסנית.

12 עיצוב תוכנה מבוסס עצמים ג'אווה ה. 3. המחלקה Stack<T> (בייצוג שרשרת חוליות) public class Stack<T> private Node<T> first; public Stack() this.first = null; public boolean isempty() return this.first == null; public void push(t x) this.first = new Node<T>(x, this.first); public T pop() T x = this.first.getinfo(); this.first = this.first.getnext(); return x; public T top() return this.first.getinfo(); public String tostring() String str = "["; Node<T> pos = this.first; while (pos!= null) str = str + pos.getinfo().tostring(); if (pos.getnext()!= null) str = str + ","; pos = pos.getnext(); str = str + "]"; return str;

13 פרק 8 מחסנית ותור ו. יעילות פעולות המחסנית יעילות הפעולות של טיפוס נתונים נקבעת על פי מימושן, שנעשה על סמך הייצוג שנבחר עבור הטיפוס. פעולות מסוימות יכולות להיות יעילות מאוד במימוש מסוים ויעילות הרבה פחות במימוש אחר. שינוי ייצוג יכול "לגבות עלויות" בנושא יעילות זמן הריצה. כאשר דנים במחסנית, קיימת פעולה אחת שיעילותה תושפע מאוד מבחירת הייצוג, הפעולה.push( ) אם מייצגים את המחסנית באמצעות מערך, ובמקרה הגרוע ביותר שבו המערך מלא לחלוטין באיברים, הפעולה push( ) צריכה ליצור מערך חדש גדול יותר מהמקורי ולהעתיק לתוכו את כל האיברים הקיימים במחסנית. כלומר יעילות הפעולה תהיה O(n) n מייצג את מספר האיברים במחסנית. לעומת זאת, כאשר המחסנית מיוצגת באמצעות שרשרת חוליות, יעילות ההכנסה היא (1)O, כיוון שתמיד קיימת בידינו הפניה בדיוק למקום שבו צריך להכניס את האיבר החדש. שימו לב, דרך מימוש שונה על פי אותו ייצוג יכולה ליצור הבדלי יעילות. ייצוג מחסנית בעזרת שרשרת חוליות, כאשר ראש המחסנית הוא האיבר האחרון בשרשרת, ישנ ה את יעילות הפעולות,push( ) top(),pop() כך שתהיה O(n) לכל אחת מהן. אם נשנה את הייצוג של המחסנית ונוסיף את התכונה,last מטיפוס חוליה, שתשמור הפניה לאיבר האחרון בשרשרת החוליות, תחזור יעילות הפעולות,push( ) top() להיות (1)O. אולם, מה לגבי הפעולה?pop() פעולה זו חייבת לעדכן את ערכה של התכונה,last ולכן תידרש סריקה של כל חוליות השרשרת עד לחוליה שתעמוד בראש המחסנית, כלומר יעילות הפעולה תישאר.O(n) מכאן והלאה נתעלם מאפשרות המחסנית הוא החוליה הראשונה. זו, ייצוג כיוון שהיא טובה פחות מהייצוג האחר ראש שבו pop() מרבית פעולות המחסנית מתבצעות ביעילות של (1)O. נסקור לדוגמה את הפעולה המתבצעת בכל אחד מהייצוגים ב-( O(1 : בייצוג של המערך: אנו מעדכנים את האינדקס.top בשרשרת החוליות: אנו שולפים את החוליה שבראש המחסנית, שאליה כאמור יש לנו הפניה. O(n) יעילות הפעולה tostring() המחסנית. תהיה בכל הייצוגים, כיוון שהיא דורשת כל איברי של סריקה Stack() boolean isempty() void push (T x) T pop() T top() String tostring() ייצוג על ידי מערך O(1) O(1) O(n) O(1) O(1) O(n) ייצוג על ידי שרשרת חוליות O(1) O(1) O(1) O(1) O(1) O(n)

14 עיצוב תוכנה מבוסס עצמים ג'אווה ז. פעולות נוספות לפעמים אנו מעוניינים לממש פעולות נוספות המתייחסות למחסנית. היכן נממש את הפעולות הללו? האם נרחיב את הממשק המוגדר או שמא נימנע מכך? כיצד נגדיר פעולה כזו מחוץ לממשק המחסנית? נבחן את הדוגמה הבאה. ז. 1. גודל המחסנית ברצוננו לממש את הפעולה המחזירה את גודל האוסף, כלומר את מספר התאים במחסנית. עומדות לפנינו שתי אפשרויות: אפשרות ראשונה: פעולה פנימית נממש את הפעולה כפעולה פנימית של המחלקה Stack המוצגת בסעיף ה. 3., כלומר נוסיף עוד פעולה לממשק המחלקה. הפעולה הפנימית פועלת על המחסנית הנוכחית, להשתמש בייצוג כדי לספור את מספר החוליות בשרשרת: ולכן מותר לנו public int size() int counter = 0; Node<T> temp = this.first; while (temp!= null) counter++; temp = temp.getnext(); return counter; דרך נוספת למימוש הפעולה יכולה להיות שינוי הייצוג של המחסנית. אם היינו מוסיפים לייצוג המחסנית את התכונה,size שהייתה שומרת את המספר המייצג את כמות האיברים שבמחסנית בכל רגע נתון, היינו יכולים לבצע פעולה קצרה ותכליתית בשם.getSize() יש לשים לב שבעוד שינוי הייצוג היה מוריד את מחיר היעילות של מימוש הפעולה,getSize() היינו צריכים להוסיף עדכונים של התכונה size בפעולות push( ) ו-() pop. כמו כן, לא תמיד נתונה לנו היכולת לשנות את הייצוג של מחלקה, ולכן יש לבחון בכל מצב האם אפשרות זו מתאימה לבעיה הנתונה. אפשרות שנייה: פעולה חיצונית הוספת הפעולה size() מרחיבה את אוסף פעולות הממשק של מחסנית, מעבר למינימום המגדיר תפקוד תקין של מחסנית. אך האומנם נהיה מעוניינים להרחיב את הממשק של טיפוס נתונים עבור כל בעיה פרטית שבה נתקל? עומדת בפנינו אפשרות נוספת. נממש את הפעולה המחזירה את גודל המחסנית כפעולה חיצונית למחלקה.Stack הגדרת פעולה חיצונית פירושה שהפעולה מוגדרת וממומשת מחוץ למחלקה מחסנית. הפעולה פועלת על פרמטר שהוא עצם מטיפוס מחסנית. במקרה זה לא ניתן להשתמש בייצוג המחלקה אלא בפעולות

15 פרק 8 מחסנית ותור הממשק בלבד. האוסף השמור במחסנית, לכן גם לא נאמר שאנו סופרים חוליות, כיוון שכלל איננו יודעים כיצד מיוצג אלא נאמר שאנו סופרים את הערכים השמורים במחסנית. כיוון שהפעולה היא חיצונית, ובהתאם להחלטתנו ביחידת לימוד זו, היא פועלת על מחסנית קונקרטית, למשל על.Stack<Integer> בתכנון פעולה זו עלינו להביא בחשבון שלשם ספירת הערכים שבמחסנית, עלינו לשלוף אותם אחד-אחד מן המחסנית. עם זאת, אחרי ביצוע הפעולה, סביר ביותר שנצטרך להמשיך ולהתייחס אל המחסנית המקורית בהמשך התוכנית. עלינו לוודא שמצב המחסנית בסיום הפעולה יהיה כמו בראשיתה. דיון זה מוביל למימוש שלפניכם: public static int size(stack<integer> s) int counter = 0; Stack<Integer> temp = new Stack<Integer>(); while (!s.isempty()) שמירת האיברים במחסנית העזר // temp.push(s.pop()); counter++; החזרת האיברים למחסנית המקורית // (!temp.isempty()) while s.push(temp.pop()); return counter; במימוש זה השתמשנו במחסנית עזר כדי לשמור על תוכן ומבנה המחסנית המקורית. כל מימוש של פעולה המחייב שינוי הסדר של איברי המחסנית, או כניסה לעומקה, מחייב לשמור את איברי המחסנית המקורית כך שניתן יהיה להחזירם למחסנית תוך שמירת הסדר המקורי שלהם. לצורך כך יש להשתמש במבנה עזר שיאפשר את שחזור המחסנית המקורית קודם לתום הפעולה. מחסנית היא מבנה נוח ומתאים למטרה זו. ז. 2. סכום הערכים במחסנית נדון בפעולה נוספת על מחסנית, המחזירה את סכום הערכים השמורים במחסנית (למשל, אם הערכים במחסנית הם 18 6, 1, אזי הפעולה תחזיר 25). פעולה זו אינה מתאימה למחסנית בעלת ערכים שלא ניתנים לסכימה. למשל, לא ניתן לסכום ערכים שהם צבים או קוביות. לכן, פעולה זו אינה יכולה להיות ממומשת כפעולה פנימית של המחלקה מחסנית, שכן היא לא מתאימה לכל טיפוס של ערכים.

16 עיצוב תוכנה מבוסס עצמים ג'אווה כמו הפעולה הקודמת, תוגדר פעולה זו כפעולה חיצונית (פעולה סטטית), למחלקה.Stack גם כאן נזדקק למחסנית עזר כדי לשמר את המחסנית המקורית: public static int sumitems(stack<integer> s) int x, sum = 0; Stack<Integer> temp = new Stack<Integer>(); while (!s.isempty()) x = s.pop(); temp.push(x); sum = sum + x; while (!temp.isempty()) s.push(temp.pop()); return sum; נסכם: ההחלטה באיזה פתרון נבחר לצורך מימוש פעולה נוספת על אוסף נתונים, האם נגדיר בממשק פעולה פנימית נוספת או נגדיר פעולה חיצונית, תלויה בצרכים הספציפיים של הבעיה ובהתאם להנחיות שנקבל. בכל מקרה, ברור שפעולה פנימית יכולה להיבחן כאפשרות רק במקרים שבהם לא נדרשים שום טיפול או התייחסות ייחודית לערכים השמורים במחסנית. ח. המחסנית טיפוס נתונים מופשט בפרק מחלקות הגדרנו "טיפוס נתונים מופשט" (טנ"מ) כטיפוס שהממשק שלו אינו חושף את דרך הייצוג שלו. מכאן נובע שלא ניתן לגשת ישירות לתכונות העצמים של הטיפוס ולשנות את מצבם, אלא רק דרך הפעולות המוגדרות על הטיפוס. כמו כן, אפשר להסיק מכך שניתן להחליף את דרך הייצוג של הטיפוס מבלי שמשהו בפעולות הממשק ישתנה. כך אפשר להעלים מהמשתמש טיפוס את כל נושא הייצוג והמימוש של הטיפוס, ולשמור בהקפדה את העיקרון של הסתרת מידע שהוא עקרון בסיסי בתכנות מונחה עצמים. הגדרה זו של טיפוס נתונים מופשט הספיקה והתאימה לכל מחלקה שהגדרנו למעשה ביחידת לימוד זו עד לכאן. לפי הגדרה זו, היו הדלי, הדרכון והנקודה טיפוסי נתונים מופשטים, שהפעילות עליהם נעשתה רק בעזרת פעולות הממשק. הפעולות הסתירו את אופן הייצוג והמימוש של הטיפוסים. ניתן היה לשנות את הייצוג והמימוש בלי שהמשתמש היה צריך לשנות משהו בתוכניות שכבר התבססו על עצמים מטיפוסים אלה. כשעברנו לטפל באוספים דינמיים הרחבנו את ההגדרה של טיפוס הנתונים המופשט בדרישה נוספת. כיוון שההגדרה של אוסף נתונים כוללת את הרעיון של קיום נוהל מחייב של אופן הגישה אל האיברים השמורים באוסף (פרוטוקול), חייב טיפוס נתונים מופשט המגדיר אוסף להיות מוגן מפני כל שינוי במבנה שלו העלול לפגוע בקיום הנוהל. על הטיפוס מוטלת הדרישה לוודא שכל הפעולות שנעשות עליו לא יפגעו במבנהו באופן שיוביל להפרת נוהל הגישה. מחסנית, פירוש הדבר, שכל הפעולות שהמשתמש יכול לבצע יבטיחו שאיברים יתוספו למחסנית רק בראשה

17 פרק 8 מחסנית ותור ויוצאו ממנה בסדר הפוך לסדר הכנסתם. נוסף על כך, אי-אפשר יהיה לפנות לאיברים השמורים בעומק המחסנית. המחסנית, כפי שהוגדרה בפרק זה, מקיימת את כל הנדרש מטיפוס נתונים מופשט: ממשק המחלקה Stack<T> מגדיר פעולות, אך אינו חושף את דרך הייצוג והמימוש של המחלקה. ראינו כי ניתן לממש את המחסנית לפחות בשני ייצוגים שונים: במערך ובשרשרת חוליות. שינוי הייצוג אינו משנה את הממשק של המחסנית. לכן אין צורך לבצע שינוי כלשהו בתוכנית המשתמשת במחסנית, גם אם מחליפים מימוש אחד במשנהו. כיוון שהפעולות האפשריות על מחסנית הן רק כאלה המאפשרות הכנסה לראש המחסנית והוצאה ממנו, הרי גם הדרישה החדשה לגבי שמירת המבנה ונוהל הגישה של האוסף מתקיימת. מכל אלה נובע שהמחסנית אכן עונה על ההגדרה של טיפוס נתונים מופשט: קיימת הפרדה מלאה בין הממשק למימוש, ולכן המימוש והייצוג מוסתרים לחלוטין מהמשתמש. בשום דרך לא ניתן לקלקל את המבנה של המחסנית..1.2 המחלקה מחסנית מגדירה טיפוס אוסף כללי עם פרוטוקול LIFO להכנסה של ערכים ולהוצאתם. המחסנית היא הטיפוס הראשון בארגז הכלים שלנו, האמור להכיל מחלקות המאפשרות להחזיק תשמש לפתרון בעיות יישומיות המחסנית אוסף של נתונים ולטפל בהם בעזרת נוהל קבוע. ספציפיות המקיימות את פרוטוקול.LIFO את הפרק נסיים בהצגת טיפוס אוסף כללי נוסף המקיים פרוטוקול שונה. הטיפוס הבא בארגז הכלים שלנו. סוג אוסף זה יהיה ט. התור תור (Queue) הוא סוג של אוסף. הערכים בתור מאורגנים כסדרה, והפרוטוקול עבור פעולות ההכנסה וההוצאה הוא זה: הוצאת ערכים בתור מותרת רק מצד אחד, הקרוי ראש התור, והכנסת ערכים מותרת רק לצד האחר, הקרוי סוף התור (או 'זנב התור'). גישה כזו לטיפול בערכים נקראת FIFO ראשי התיבות של המילים: :First In First Out האיבר הראשון שנכנס לתור הוא הראשון לצאת ממנו. סוף התור ערכים הוצאת ערכים הכנסת ראש התור

18 עיצוב תוכנה מבוסס עצמים ג'אווה ט. 1. ממשק המחלקה התור הפעולות שיש צורך להגדיר בממשק התור הן פעולות הכנסה והוצאה התומכות בפרוטוקול.FIFO כפי שעשינו במחסנית, נפריד בין פעולת הוצאה המחזירה את הערך שבראש התור לבין פעולה המשאירה את האיבר בתור ורק מאפשרת לברר את ערכו. כמו במחסנית, יש צורך להגדיר בממשק גם פעולה הבודקת ריקנות, שכן פעולת ההוצאה תלויה בבדיקה זו. כיוון שהתור הוא אוסף כללי ופעולותיו אינן משתמשות בתכונות או בפעולות ייחודיות לערכים השמורים בו, נגדיר אותו כמחלקה גנרית. ממשק המחלקה תור Queue<T> המחלקה מגדירה טיפוס אוסף עם פרוטוקול FIFO להכנסה והוצאה של ערכים. Queue() boolean isempty() void insert (T x) T remove() T head() String tostring() הפעולה בונה תור ריק הפעולה מחזירה 'אמת' אם התור הנוכחי ריק, ו'שקר' אחרת הפעולה מכניסה את הערך x לסוף התור הנוכחי הפעולה מוציאה את הערך שבראש התור הנוכחי ומחזירה אותו. הנחה: התור הנוכחי אינו ריק הפעולה מחזירה את ערכו של האיבר שבראש התור מבלי להוציאו. הנחה: התור הנוכחי אינו ריק הפעולה מחזירה מחרוזת המתארת את התור כסדרה של ערכים, במבנה הזה ) 1 x הוא האיבר שבראש התור): [x 1, x 2,, x n ] ט. 2. ייצוג המחלקה תור כמו במחסנית, גם תור ניתן לייצוג בעזרת מערך. אם רוצים להכניס ערך נוסף והמערך מלא, יש להקצות מערך חדש, גדול יותר, להעתיק אליו את המערך הנוכחי, ורק אז לבצע את ההכנסה. כיוון שכבר דנו בגישה זו עבור מחסנית, והתור הוא סדרה שאינה מוגבלת בגודלה, נעסוק כאן בייצוג בעזרת שרשרת חוליות. כיוון שההכנסה וההוצאה מהתור מתבצעות משני קצוות שונים, נשמור שתי הפניות, הפניה אחת לראש התור והפניה נוספת לסופו: public class Queue<T> private Node<T> first; private Node<T> last;...

19 א? פרק 8 מחסנית ותור היכן בשרשרת, כדאי לקבוע את first והיכן את?last הסבירו את בחירתכם. ב. כתבו את המחלקה תור כך שיעילות כל פעולות הממשק, למעט,toString() תהיה (1)O. ג. נבחן שינוי אפשרי של ייצוג התור: נסתפק בהפניה אחת לראש התור. לשם ביצוע הפעולה המתבצעת בקצה התור האחר, "נרוץ" עם הפניה נוספת עד סוף התור. ייצוג זה יגרום לפחות לאחת מהפעולות המוגדרות על התור להתבצע ביעילות O(n) במקום ב-( O(1, ולכן להפוך ללא יעילה. זהו את הפעולה. ט. 3. יעילות פעולות התור n) בהינתן הייצוג המופיע בסעיף הקודם, נסכם את יעילות פעולות הממשק של תור מייצג את מספר האיברים בתור). Queue() boolean isempty() void insert (T x) T remove() T head() String tostring() O(1) O(1) O(1) O(1) O(1) O(n) ט. 4. התור טיפוס נתונים מופשט העבודה עם עצמים מטיפוס תור נעשית אך ורק דרך ממשק הפעולות, שאינו חושף את דרך הייצוג של התור ואינו מאפשר לגשת ישירות לתכונות התור ולשנותן. לפיכך ניתן לשנות את דרך הייצוג והמימוש של התור מבלי שתוכניות המשתמשות בפעולות התור יהיו מודעות לשינוי או ידרשו לבצע שינויים בהתאמה. עקרון הסתרת המידע מתקיים ונשמר. יתרה מזאת, התור שומר על מבנהו, ופעולות התור מבטיחות את קיומו התקין של פרוטוקול הגישה,FIFO המחייב שהכנסה לתור וההוצאה ממנו יתבצעו בשני קצוות שונים של התור. כלומר, בדומה למחסנית, גם תור הוא טיפוס נתונים מופשט. התור הוא אם כן טיפוס אוסף נוסף המצטרף לארגז הכלים שלנו. הוא ישמש אותנו בהמשך בדוגמאות השונות, וביישומים שבהם יש צורך לטפל באוספי נתונים ספציפיים המתנהגים על פי פרוטוקול.FIFO

20 עיצוב תוכנה מבוסס עצמים ג'אווה י. סיכום המחסנית היא טיפוס אוסף כללי ואינה מוגבלת בגודלה. ניתן לחשוב על מחסנית כסדרה שבה פעולות הדחיפה והשליפה של ערכים מתבצעות רק דרך קצה אחד של הסדרה, הנקרא ראש המחסנית. הכנסת ערך למחסנית מוסיפה ערך חדש בראש המחסנית. הוצאת ערך מהמחסנית מסירה את הערך המצוי בראש המחסנית וחושפת את הערך הבא בסדרה. הפרוטוקול המגדיר את דרך הגישה לערכים במחסנית נקרא.Last In First Out LIFO המחסנית משתלבת באופן טבעי בכתיבת יישומים שבהם יש צורך לאחזר נתונים באופן הפוך לסדר קליטתם. תור הוא טיפוס אוסף כללי שאינו מוגבל בגודלו. ניתן לחשוב על תור כסדרה שבה פעולות ההכנסה וההוצאה מתבצעות דרך שני קצוות שונים של הסדרה, ראש התור וזנבו. הכנסת ערך נעשית אל זנב התור, והוצאת ערך נעשית מראש התור. הפרוטוקול המגדיר את דרך הגישה לערכים בתור נקרא.First In First Out FIFO ניתן לייצג מחסנית ותור באמצעות מערך או באמצעות שרשרת חוליות. הייצוג באמצעות מערך דורש כתיבת פעולת הכנסה מורכבת, הכוללת יצירת מערך חדש והעתקת איברים אליו אם המערך הקיים מלא. בעיה זו אינה מתעוררת בייצוג בעזרת שרשרת חוליות. מחסנית ותור הם טיפוסי נתונים גנריים. טיפוס המחלקה ייקבע רק בעת השימוש בה, למשל בעת יצירת עצם. ממחסנית ותור גנריים אפשר ליצור מחסניות ותורים מטיפוסים שונים ללא צורך בשינוי המחלקות. פעולות חיצוניות על אוספים שיוגדרו ביחידת לימוד זו יטפלו רק בטיפוסים קונקרטיים ולא בטיפוסים גנריים ניתן להרחיב את אוסף הפעולות האפשריות על מחסנית או תור, אך יש להחליט אם להגדיר פעולות אלה כפעולות פנימיות המרחיבות את הממשק המקורי או להגדיר פעולות חיצוניות המקבלות את המחסנית או התור כפרמטר ועובדות עליהם. במחסנית ובתור אנו מעדיפים שלא להרחיב את ממשק הטיפוס המקורי ולהגדיר פעולות נוספות כפעולות חיצוניות. טיפוס אוסף הוא טיפוס מופשט אם הוא מקיים את הדרישות האלה: הממשק שלו אינו חושף את הייצוג שנבחר. ניתן לממש את הטיפוס בכמה ייצוגים שונים. הממשק שומר על הפרוטוקול הכלול בתיאור הטיפוס ביצוע פעולות הממשק אינו יכול לקלקל את מבנה האוסף ואינו יכול לפגוע בקיום הפרוטוקול. המחסנית והתור, כפי שהוצגו בפרק זה, הם טיפוסי נתונים מופשטים. המחסנית והתור טיפוסי הם האוספים הכלליים הראשונים ישמשו אותנו בהמשך לפתרון יישומים מתקדמים. המוצגים הם זו. ביחידה

21 פרק 8 מחסנית ותור מושגים Stack run time stack Last In First Out First In First Out Queue מחסנית מחסנית זמן ריצה נכנס אחרון יוצא ראשון נכנס ראשון יוצא ראשון תור

22 עיצוב תוכנה מבוסס עצמים ג'אווה שאלה 1 תרגילים Stack<Character> s1 = new Stack<Character>(); Stack<Character> s2 = new Stack<Character>(); s1.push('a'); s1.push('b'); s1.push('c'); s1.push('d'); char ch = s1.pop(); s2.push(ch); ch = s2.pop(); s1.push('e'); תארו את תכולת המחסניות s1 ו- s2 לאחר כל סדרת פעולות: א. Stack<Integer> s1 = new Stack<Integer>(); Stack<Integer> s2 = new Stack<Integer>(); s1.push(1); s2.push(2); s1.push(3); s2.push(4); s1 = s2; s1.push(5); s2.push(6); ב. Queue<Integer> q1 = new Queue<Integer>(); Queue<Integer> q2 = new Queue<Integer>(); q1.insert(32); q1.insert(-6); q2.insert(q1.head()); q1.insert(q1.remove()+q1.remove()); if (q1.isempty()) q1.insert(9); else q2.insert(17); שאלה 2 תארו את תכולת התורים q1 ו- q2 לאחר כל סדרת פעולות: א. Queue<String> q1 = new Queue<String>(); Queue<String> q2 = new Queue<String>(); q1.insert("hello"); q1.insert("world"); q2.insert(q1.remove()); q2.insert(q1.head()); q1.remove(); q1.insert("hello" + q2.head()); ב.

23 פרק 8 מחסנית ותור שאלה 3 נתונות שתי מחסניות st1 ו- st2, של מספרים שלמים. המחסנית st2 ריקה, ואילו st1 מכילה מספר int x, y; while (!st1.isempty()) x = st1.pop(); if (!st1.isempty()) y = st1.pop(); st2.push(y); else st2.push(x); st2.push(x); System.out.println("st2=" + st2); לא ידוע של ערכים. נתון קטע הקוד הזה: בהנחה שהמחסנית st1 מכילה את סדרת הערכים: [3,8],2,1,7 (הערך 8 נמצא בראש המחסנית), כתבו מה יהיה הפלט שיתקבל בעקבות הרצת קטע הקוד. שאלה 4 הפעולה שלפניכם משתמשת במחסנית של מספרים שלמים לפתרון בעיה מסוימת: public static int mystery(int num) int x = 0, y = 1; Stack<Integer> s = new Stack<Integer>(); while (num!= 0) s.push(num % 10); num = num / 10; while (!s.isempty()) x = x + y * s.pop(); y = y * 10; return x; א. מהו המספר שיוחזר עבור הזימון?mystery(2047).mystery( ) ב. כתבו את טענת היציאה של הפעולה ג. נתחו את יעילות הפעולה.mystery( )

24 עיצוב תוכנה מבוסס עצמים ג'אווה שאלה 5 הפעולה שלפניכם מקבלת שני מספרים שלמים וחיוביים, m ו- n,.m<n הפעולה נעזרת בתור של מספרים שלמים: public static void printsomething(int m, int n) Queue<Integer> q = new Queue<Integer>(); for (int i = 1; i <= n; i++) q.insert(i); while (!q.isempty()) for (int i = 1; i <= m - 1; i++) q.insert(q.remove()); System.out.print(q.remove() + " "); א. עקבו אחר ביצוע הפעולה עבור הזימון (9,5) printsomething וכתבו את הפלט המתקבל. ב. כתבו את טענת היציאה של הפעולה.printSomething( ) ג. נתחו את יעילות הפעולה.printSomething( ) שאלה 6 לפניכם הפעולה: public static boolean secret(stack<integer> s1, Stack<Integer> s2) while (!s1.isempty() &&!s2.isempty()) if (s1.pop()!= s2.pop()) return false; if (!s1.isempty()!s2.isempty()) return false; return true; א. ב. ג. תנו דוגמה לשתי מחסניות s1 ו- s2 ש, עבורן הזימון (s2 secret,s1) יחזיר,false ודוגמה נוספת לזימון שיחזיר.true כתבו את טענת היציאה של הפעולה.secret( ) נתחו את יעילות הפעולה.secret( )

25 פרק 8 מחסנית ותור שאלה 7 נתונה תוכנית המשתמשת במחסנית של מחרוזות: public class Test public static void main(string[] args) Stack<String> st1 = new Stack<String>(); st1.push("i"); st1.push("world"); st1.push("here"); st1.push("hello"); st1.push("am"); dosomething(st1); while (!st1.isempty()) System.out.print(st1.pop() + " "); public static void dosomething(stack<string> st2) Stack<String> st3 = new Stack<String>(); while (!st2.isempty()) String str = st2.pop(); if (str.length() > 4) st3.push(str); while (!st3.isempty()) st2.push(st3.pop()); עקבו אחרי ריצת התוכנית, וכתבו את הפלט. public static void mystery(queue<integer> q) int x; שאלה 8 לפניכם פעולה רקורסיבית: if (!q.isempty()) x = q.remove(); mystery(q); q.insert(x); כתבו את טענת היציאה של הפעולה.

26 עיצוב תוכנה מבוסס עצמים ג'אווה שאלה 9 הפעולה שלפניכם מקבלת תור ומחזירה את גודלו מספר האיברים בתור. בסיום הפעולה התור נשאר כפי שהתקבל: public static int size(queue<integer> q) א. ממשו את הפעולה תוך שימוש בתור עזר. ב. נתחו את יעילות הפעולה.size( ) ג. האם ניתן לממש את הפעולה size( ) ללא שימוש בתור עזר או בכל טיפוס אוסף אחר? אם כן, ממשו את הפעולה בדרך זו. אם לא, הסבירו מדוע. שאלה 10 בפרק הוצגה הפעולה החיצונית: public static int size(stack<integer> s) המקבלת מחסנית של מספרים ומחזירה את גודל המחסנית, כלומר את מספר האיברים במחסנית. בסיום הפעולה המחסנית נשארה כפי שהייתה במקור, וזאת משום שהשתמשנו במחסנית עזר. ממשו את הפעולה מחדש, אך הפעם ללא שימוש במחסנית עזר או בכל טיפוס אוסף אחר. רמז: השתמשו ברקורסיה. שאלה 11 נניח כי הפעולה top() אינה קיימת בממשק המחסנית. כתבו פעולה חיצונית המבצעת את הפעולה הזו על מחסנית של מחרוזות.(Stack<String>) חשבו מהו הפרמטר שתקבל הפעולה ומה יהיה ערך ההחזרה שלה. שאלה 12 לעתים קרובות אנו מעוניינים לשכפל תור, כלומר ליצור העתק מדויק של תור קיים. כתבו פעולה חיצונית בשם,cloneQueue( ) המקבלת תור של תווים ומחזירה תור חדש שהוא העתק של התור שהתקבל. שאלה 13 ממשו פעולה בשם getstringslength( ) המקבלת מחסנית של מחרוזות ומחזירה מחסנית שבה מופיעים אורכי המחרוזות לפי הסדר שלהן במחסנית המקורית. שימו לב: המחסנית המתקבלת לא תשתנה בסיום הפעולה. "Maradona" "Pele" "Messy" " Ronaldinho" דוגמה: אם הפעולה מקבלת את המחסנית: הפעולה תחזיר מחסנית ובה הערכים האלה: 10

27 פרק 8 מחסנית ותור שאלה 14 בשאלה זו עליכם לממש שתי פעולות כפעולות פנימיות של המחלקה מחסנית,Stack<T> כאשר היא מיוצגת בעזרת שרשרת חוליות. א. ממשו את הפעולה הפנימית הזו: public T getitemat(int k) טענת כניסה: הפעולה מקבלת מספר שלם חיובי k. טענת יציאה: הפעולה מחזירה את האיבר שנמצא בעומק k במחסנית הנוכחית. לאחר ביצוע הפעולה, מצב המחסנית יהיה זהה למצבה לפני ביצוע הפעולה. בעומק 1=k נמצא האיבר שבראש המחסנית. אם במחסנית פחות מ- k ערכים יוחזר.null לדוגמה, אם המחסנית st נראית כך: # $ % לאחר הזימון (4) st.getitemat יוחזר התו '$'. לאחר הזימון (1) st.getitemat יוחזר התו '&'. public T removeitemat(int k) ב. ממשו את הפעולה הפנימית הזו: טענת כניסה: הפעולה מקבלת מספר שלם חיובי k. טענת יציאה: הפעולה מוציאה את האיבר שנמצא בעומק k במחסנית הנוכחית ומחזירה אותו. לאחר ביצוע הפעולה, במחסנית יישארו כל איבריה, למעט האיבר שהוצא. בעומק 1=k נמצא האיבר שבראש המחסנית. אם במחסנית פחות מ- k ערכים יוחזר.null לדוגמה, אם המחסנית st נראית כך: # $ # % לאחר הזימון (4) st.removeitemat יוחזר התו '$', והמחסנית תראה כך: %

28 עיצוב תוכנה מבוסס עצמים ג'אווה שאלה 15 ממשו את הפעולה שלפניכם כפעולה פנימית של המחלקה תור Queue<T> על פי הייצוג המופיע בפרק בסעיף ט. 2.: public void reverse() הפעולה הופכת את סדר איברי התור. יש לממש את הפעולה בסדר גודל O(n) לכל היותר. n הוא מספר האיברים בתור. שאלה 16 ממשו את הפעולה: public static int gettopssum(stack<integer>[] stacks) הפעולה מקבלת מערך מחסניות של מספרים שלמים, ומחזירה את סכום האיברים שנמצאים בראשי המחסניות. שימו לב: ייתכן שמחסנית תהיה ריקה, ולכן אין לה איבר בראש המחסנית. הריצה" הריצה" שאלה 17 נזכיר את העקרונות העומדים מאחורי פעילותה של מחסנית זמן ריצה: 1. בתחילת התוכנית "מחסנית זמן הריצה" ריקה. 2. בכל פעם שמתבצעת קריאה (זימון) לפעולה כלשהי, נדחפת לראש "מחסנית זמן הכתובת של הפקודה העוקבת לפעולה שזומנה. 3. בכל פעם שמסתיים ביצוע של פעולה שזומנה, נשלפת מראש "מחסנית זמן הכתובת של הפקודה העוקבת לפעולה זו, והתוכנית ממשיכה ממקום זה. עקבו אחר פעילותה של מחסנית זמן הריצה בזמן ביצוע הקוד שלפניכם. לשם פשטות המעקב, נתייחס לכתובת של פקודה כאל מספר השורה המעקב. שבה היא מופיעה. שרטטו ציור המתאר את 1 public class RunTimeStack 2 3 public static void main(string[] args) 4 5 int n = 4; 6 func1(n); 7 func3(n); 8 func2(n); 9 func3(n); 10 System.out.println("end of program"); public static void func1(int n) n = n + 1; public static void func2(int n) 17

29 פרק 8 מחסנית ותור func1(n); 19 n = n + 2; public static void func3(int n) System.out.println(n); שאלה 18 בפרק הוצגה דוגמה לשימוש במחסנית עבור בדיקת תקינות סוגריים של ביטוי חשבוני. א. ממשו את הפעולה: public static boolean isbracketbalanced(string str) הפעולה מקבלת מחרוזת המייצגת ביטוי חשבוני ומחזירה true אם הביטוי תקין מבחינת סוגריים, ו- false אחרת. ב. זמנו את הפעולה עבור כל אחד מהביטויים החשבוניים האלה, את התשובה הנכונה. וודאו שהפעולה אכן מחזירה ( a + b) + c * [ 2 * 5 - a] q - (r - (s + 2)) * q) [a + ]] * [b - a * 3] + (a -(i) 1 + (a *4) - ((2 + (3 -[5 +b])) / 2) תקין לא תקין לא תקין תקין שאלה 19 כתבו תוכנית שתקלוט סדרת תווים, תו אחר תו, ותסתיים בלחיצה על מקש ה- Enter (היזכרו בקליטת התווים המתבצעת בקוד בדוגמה שבסעיף ד. 2.). התוכנית תדפיס את התווים בסדר שבו הם נקלטו, עד שיופיע התו '@'. תו זה לא יודפס, אבל יגרום להיפוך סדר ההדפסה של התווים בינו ובין ה-'@' הבא. הניחו שסדרת התווים שנקלטה מכילה מספר זוגי של re@nd לדוגמה, עבור כל אחד מהקלטים האלה: ne@m rev@ind never mind יתקבל הפלט: se@tp@emb@re@ so@gn@ september song ועבור הקלט: יתקבל הפלט:

30 עיצוב תוכנה מבוסס עצמים ג'אווה (היזכרו שתסתיים בלחיצת מקש ה- Enter שאלה 20 כתבו תוכנית שתקלוט סדרת תווים, תו אחר תו, בקליטת התווים המתבצעת בקוד בדוגמה שבסעיף ד. 2.). סדרת התווים שתיקלט מייצגת משפט המורכב ממילים המופרדות על ידי רווח אחד בדיוק. התוכנית תדפיס את המשפט כך שכל מילה בו תודפס במהופך. יש לשמור על סדר המילים. ym eman si ehsom לדוגמה, עבור המשפט: My name is Moshe התוכנית תדפיס: שאלה 21 כתבו תוכנית שתקלוט סדרת תווים, תו אחר תו, שתסתיים בלחיצת מקש ה- Enter (היזכרו בקליטת התווים המתבצעת בקוד בדוגמה שבסעיף ד. 2.). התוכנית תבדוק האם סדרת התווים שנקלטה היא מהצורה,xZyZx לפי ההגדרות האלה: x היא סדרת תווים לא ריקה באורך לא ידוע, המורכבת מהתווים: ו- c. b,a x). הוא היפוך של (y בסדר הפוך אך היא סדרת תווים המכילה אותם התווים שב- x, y Z. הוא התו Z azaza aacbazabcaazaacba azbza לדוגמה, המחרוזות האלה הן מהצורה :xzyzx ואילו המחרוזת הזו אינה מהצורה :xzyzx רמז: אפשר להשתמש ביותר ממחסנית אחת.

31 פרק 8 מחסנית ותור פרקקק 8888 ק עבודה 1111 ס מססס'''' דף בסיס מיון מבוא בדף עבודה זה נכיר שיטת מיון המכונה מיון בסיס sort).(radix מיון זה נעזר בטיפוס האוסף תור כדי לבצע את המיון. עקרון פעולתו של המיון מבוסס על ערכן של הספרות ועל מיקומן במספרים שאותם רוצים למיין. המטרה בדף עבודה זה היא לממש פעולה שתקבל מערך של מספרים שלמים אותו בסדר עולה על פי שיטת מיון בסיס המוצגת להלן. וחיוביים ותמיין שיטת המיון נעבור על המספרים במערך ונכניס אותם לעשרה תורים נפרדים (הממוספרים מ- 0 ועד 9) על פי ערכי הספרות שלהן מהמשמעותית פחות (אחדות) למשמעותית ביותר. נכניס כל מספר מהמערך באחד מעשרת התורים, לפי ערך הספרה שבה מטפלים. לאחר מכן נחזיר את המספרים למערך המקורי. נתחיל בתור המספרים בעלי הספרה 0 ונסיים בתור המספרים בעלי הספרה 9. מכל תור נוציא את המספרים כך שהסדר ביניהם יישמר. אם מבצעים פעולות אלה עבור כל ספרה, מהמשמעותית פחות למשמעותית ביותר, יתקבל מערך ממוין. כלומר, סיום המיון תלוי בערך בעל מספר הספרות הגדול ביותר שקיים במערך. הערה: אם המספרים במערך אינם בעלי מספר ספרות זהה, יש להתייחס אליהם כאילו יש להם אפסים מובילים לדוגמה, כאשר נתון המערך: אפשר להסתכל עליו גם כך: 066 לצורך מיון המערך המתואר, בשיטת מיון בסיס, נצטרך לסרוק את כל המערך 3 פעמים כיוון שהערכים הגבוהים הפעולות שתוארו לעיל. במערך הם בעלי ביותר 3 ספרות לכל היותר. לצורך הפתרון יש להגדיר מערך נוסף של עשרה תורים בשם.queues סריקה בכל סריקה 1: נסדר בתורים את כל המספרים במערך על פי ספרת האחדות, ונקבל: יש לבצע את queues[0]: 170, 090 queues[1]: queues[2]: 002, 802 queues[3]: queues[4]: 024 queues[5]: 045, 075 queues[6]: 066 queues[7]: queues[8]: queues[9]:

32 עיצוב תוכנה מבוסס עצמים ג'אווה כעת נוציא את כל המספרים מהתורים, על פי הסדר. נכניס אותם חזרה למערך ונקבל: סריקה 2: נסדר בתורים את כל המספרים מהמערך שהתקבל, הפעם על פי ספרת העשרות: נוציא את כל המספרים מהתורים, על פי הסדר, ונכניס אותם חזרה למערך. נקבל: queues[0]: 002, 802 queues[1]: queues[2]: 024 queues[3]: queues[4]: 045 queues[5]: queues[6]: 066 queues[7]: 170, 075 queues[8]: queues[9]: סריקה 3: נסדר בתורים את כל המספרים מהמערך שהתקבל, הפעם על פי ספרת המאות: queues[0]: 002, 024, 045, 066, 075, 090 queues[1]: 170 queues[2]: queues[3]: queues[4]: queues[5]: queues[6]: queues[7]: queues[8]: 802 queues[9]: נוציא את כל המספרים מהתורים, על פי הסדר. נכניס אותם חזרה למערך ונקבל: סיימנו. כפי שניתן לראות, קיבלנו מערך ממוין מה עליכם לעשות? א. כתבו תוכנית שתיצור מערך של מספרים שלמים בגודל שייקלט על ידי המשתמש, ותאתחל אותו במספרים חיוביים אקראיים. התוכנית תמיין את המערך בעזרת הפעולה: public static void radixsort(int[] arr) הפעולה מקבלת מערך של מספרים שלמים וחיוביים וממיינת אותו בסדר עולה, על פי האלגוריתם למיון בסיס שהוסבר לעיל. מאחר שבמערך יכולים להיות מספרים שלמים בין 0 ל- Integer.MAX_VALUE, מספר הספרות הגדול ביותר יכול להגיע ל- 10 ספרות (כלומר יתבצעו 10 סריקות מלאות על המערך עד תום המיון). לבדיקת נכונות מימוש הפעולה,radixSort( ) הדפיסו את המערך לפני המיון ואחריו. ב. נתחו את יעלות הפעולה radixsort( ) שכתבתם. מה החיסרון הבולט של מיון זה?! בהצלחה

33 פרק 8 מחסנית ותור פרקקק 8888 ק עבודה 2222 ס מססס'''' דף האנוי מגדלי נשוב לבעיית מגדלי האנוי שפתרתם בפרק 4 רקורסיה. הפעם יינתן לכם הפתרון במחלקה מוכנה. הדגש בדף העבודה יושם על בניית לוח המשחק תוך תרגול נושא המחסנית. הפתרון שיתקבל יוצג באופן גרפי. חידת "מגדלי האנוי" Hanoi) (Towers of היא חידה מתמטית שהומצאה על ידי המתמטיקאי הצרפתי אדוארד לוקאס ב- 1883, והפכה למשחק חביב. המשחק בנוי מלוח שעליו נעוצים שלושה מוטות הממוספרים 3. 2, 1, המשחק בנוי מלוח שבו נעוצים שלושה מוטות הממוספרים מ- 1 עד 3 ומדיסקיות בהיקפים שונים. בתחילת המשחק, על מוט מספר 1 מושחלות n דיסקיות מן הדיסקית שהיקפה גדול בסדר יורד (כמתואר באיור). הדיסקיות יוצרות צורה של מגדל ומכאן שמו של המשחק. מטרת המשחק היא להעביר את מגדל הדסקיות בשלמותו ממוט 1 למוט 3 על פי הכללים האלה: א. ניתן להעביר דיסקית אחת בלבד בכל שלב. ב. באף שלב אסור שדיסקית גדולה תהיה מונחת על דיסקית קטנה ממנה. 1 מצב התחלתי מצב סופי לוח משחק "מגדלי האנוי" עם 3 דיסקיות 2 3

34 עיצוב תוכנה מבוסס עצמים ג'אווה מה עליכם לעשות? כתבו את המחלקה HanoiTowers המגדירה את לוח המשחק "מגדלי האנוי", על פי הממשק: HanoiTowers(int numofdiscs) boolean movedisc(int frompolenum, int topolenum) int getnumofdiscs() int getnumofdiscs(int polenum) int getsizetopdisc(int polenum) boolean isempty(int polenum) הפעולה בונה לוח מגדלי האנוי ובו 3 מוטות. על מוט מספר 1 מושחלות numofdiscs דיסקיות בסדר יורד ביחס להיקפן היקף הדיסקית העליונה הוא 1 ס"מ, מתחתיה דיסקית שהיקפה 2 ס"מ, עד הדיסקית התחתונה ביותר שהיקפה.numOfDiscs (כמתואר 2 ו- 3 ריקים שני המוטות האחרים באיור "מצב התחלתי") יש לוודא שערכו של numofdiscs יהיה בין 3 ל- 10 כולל. אם לא, יש לקבוע אותו ל- 3 כברירת מחדל הפעולה שולפת את הדיסקית העליונה ממוט מספר frompolenum ומשחילה אותו על מוט מספר.toPoleNum הפעולה מחזירה true אם העברת הדיסקית התבצעה בצורה תקינה (דיסקית גדולה לא תונח על דיסקית קטנה ממנה, והמוט frompolenum אינו ריק), אחרת הפעולה תחזיר.false הנחה: קיימים מוטות שמספרם frompolenum ו- topolenum הפעולה מחזירה את מספר הדיסקיות שעל לוח המשחק הפעולה מחזירה את מספר הדיסקיות המושחלות על מוט מספר.poleNum הנחה: קיים מוט שמספרו polenum הפעולה מחזירה את גודל הדיסקית שנמצאת בראש המוט שמספרו.poleNum אם המוט polenum ריק, יוחזר הערך 0 הנחה: קיים מוט שמספרו polenum הפעולה מחזירה true אם המוט שמספרו polenum ללא דיסקיות, ו- false אחרת

35 פרק 8 מחסנית ותור מהלך העבודה כתבו את המחלקה HanoiTowers על פי הממשק לעיל. יצגו את 3 המוטות בעזרת 3 מחסניות. הקפידו שערכי המחסניות יהיו מספרים שלמים המייצגים את גודל הדיסקיות המושחלות על המוטות..1 כדי לבדוק את המחלקה שכתבתם, הריצו הנמצאת במחשב שלכם בתיקייה.HelpFiles סימולציה גרפית של המשחק מגדלי האנוי. את התוכנית HanoiTowersApplication.java התוכנית תשתמש במחלקה שכתבתם ותבצע.2! בהצלחה

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות. סריקה לרוחב פרק 3 ב- Kleinberg/Tardos קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות. קשירות.s,t V שני צמתים,G=(V,E) קלט:

More information

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא: שאלה 1 עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא: 99 80 50 15 40 34 30 22 10 13 20 13 9 8 א. ב. ג. האם העץ

More information

פרק רשימה א. ייצוג הרשימה

פרק רשימה א. ייצוג הרשימה - 255-9 פרק רשימה לינארי אוסף בפרקים הקודמים הכרנו שני סוגי אוספים כלליים, מחסנית ותור. ראינו כי ההבדל ביניהם הוא בנוהל ההכנסה וההוצאה של האיברים: במחסנית האיברים הוכנסו והוצאו מצד אחד בלבד של המחסנית

More information

ASP.Net MVC + Entity Framework Code First.

ASP.Net MVC + Entity Framework Code First. ASP.Net MVC + Entity Framework Code First 1 הקדמה בפרק הזה יוצג שימוש בFirst EntityFramework Code עבור ה use case הבאים : ASP.Net MVC ASP.Net Web API ASP.Net MVC + Scaffolding הערה : Framework Entity הוצג

More information

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA תרגול 7 מבוא לתכנות ב- JAVA תרגול 7 שאלה )מועד א 2013( לפניך מספר הגדרות: תת מילה של המילה word הינה רצף של אותיות עוקבות של word פלינדרום באורך le היא מילה בעלת le אותיות שניתן לקרוא אותה משמאל לימין וגם מימין

More information

בוחן בתכנות בשפת C בצלחה

בוחן בתכנות בשפת C בצלחה בוחן בתכנות בשפת C ) כתוב תכנית הקולטת ממשתמש מספרים שלמים ומדפיסה כמה מספרים היו גדולים מ-, כמה מספרים היו קטנים מ-, וכמה מספרים היו שווים ל-. 2) כתוב תכנית הקלטת עשרה מספרים טבעיים ומחשבת את הממוצע שלהם.

More information

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ תור,מחסנית פולינה לוצקר וערימה מבני נתונים ואלגוריתמים מנהלות מרצה הקורס: פרופסור יורם לוזון פולינה מתרגלת: לוצקר אימייל: polinalutbiu@gmail.com, שעות קבלה: 13:00-15:00 יום שני בתיאום מראש. אתר הקורס:

More information

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ ניפוי שגיאות )Debug( מאת ישראל אברמוביץ בדף העבודה יש תירגול בסביבת העבודה לשפת #C לסביבות עבודה אחרות. )2015 )Visual Studio אך היא מתאימה גם לשפת Java וגם o 1. ריצה של כל התוכנית ועצירה בסוף יש לבחור

More information

יסודות מבני נתונים. תרגול :9 ערימה - Heap

יסודות מבני נתונים. תרגול :9 ערימה - Heap יסודות מבני נתונים תרגול :9 ערימה - Heap maximum שאלה: כמה זמן לוקח לחפש איבר בערימה? תשובה:,O(n) למרות שבערימה קיים סדר מסויים. Heaps 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 דוגמה: 7 11 13 21 12 17 20 34

More information

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי WPF-Windows Presentation Foundation Windows WPF טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי Client חכמים המשלב ממשקי משתמש,תקשורת ומסמכים. מטרת התרגיל : ביצוע אנימציה לאליפסה ברגע

More information

Practical Session No. 13 Amortized Analysis, Union/Find

Practical Session No. 13 Amortized Analysis, Union/Find Practical Session No. 13 Amortized Analysis, Union/Find Amortized Analysis Refers to finding the average running time per operation, over a worst-case sequence of operations. Amortized analysis differs

More information

בחינת בגרות, תשע"ז מס' שאלון: מדעי המחשב שאלה 1. Java. blog.csit.org.il הילה קדמן

בחינת בגרות, תשעז מס' שאלון: מדעי המחשב שאלה 1. Java. blog.csit.org.il הילה קדמן מדעי המחשב פרק ראשון Jv שאלה 1 C# עמוד 1 Jv שאלה 2 C# עמוד 2 שאלה 3 1 2 3 5 7 11 13 3 א. הפלט עבור = 15 n עמוד מטרת הפעולה: הכברה של ארתוסטנס חישוב והדפסת כל המספרים הראשוניים עד n. )כברה = מסננת( )הפעולה

More information

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of the rule. (Choose three cards appropriate to the lesson

More information

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

שאלות חזרה לקראת מבחן מפמר אינטרנט וסייבר שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר שאלה.1 ייצוג מידע בטבלה שלפניכם מספרים בבסיס. כל מספר מיוצג ע"י 5 סיביות. 10011 = 01100 = 00111 = 11000 = 11010 = 00101 = 10000 = 01111 = ד. יש להשלים את הערך

More information

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה. שם: ת.ז: ציון: Computer Structure Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה. שאלה 1 appleממש מערכת אשר קולטת בכל מחזור שעון ביט קלט בודדX. כדי להגדיר את הפלט של המערכת במחזור השעון הappleוכחי

More information

מבוא למחשב בשפת Matlab

מבוא למחשב בשפת Matlab מבוא למחשב בשפת Matlab תרגול 10: רקורסיה מבוסס על שקפי הקורס "מבוא למדעי המחשב" ובסיוע שקפים של ערן אדן כל הזכויות שמורות לטכניון מכון טכנולוגי לישראל תזכורת: פונקציות להלן קוד של פונקציה בשם :func function

More information

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית נושאים: מערכים, רשימות מרצה ומתרגלים אחראים: איתן בכמט, איסנה וקסלר, רז ניסים תאריך פרסום: 11.21 תאריך הגשה:

More information

Patents Basics. Yehuda Binder. (For copies contact:

Patents Basics. Yehuda Binder. (For copies contact: Patents Basics Yehuda Binder (For copies contact: elissa@openu.ac.il) 1 Intellectual Property Value 2 Intellectual Property Rights Trademarks Copyrights Trade Secrets Patents 3 Trademarks Identify a source

More information

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10 תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית: שאלות לפי נושאים: 3 שאלות העוסקות בנוסחת האיבר הכללי: 3 שאלות העוסקות בסכום סדרה חשבונית: 4 שאלות מסכמות: 5 תשובות סופיות: 8 סיכום תכונות הסדרה ההנדסית:

More information

פרק מחלקות ממשק המחלקה צריך גם לדעת להגדיר בתוכניתו מחלקות לפי הצורך. בפרק זה נלמד להגדיר מחלקה ולממשה על סמך ממשק נתון.

פרק מחלקות ממשק המחלקה צריך גם לדעת להגדיר בתוכניתו מחלקות לפי הצורך. בפרק זה נלמד להגדיר מחלקה ולממשה על סמך ממשק נתון. - 37-3 פרק מחלקות ובנייה הגדרה בפרק הקודם ראינו כיצד ניתן להשתמש במחלקות קיימות על מנת ליצור עצמים, צריך גם לדעת להגדיר בתוכניתו מחלקות לפי הצורך. אך מתכנת בפרק זה נלמד להגדיר מחלקה ולממשה על סמך ממשק

More information

A R E Y O U R E A L L Y A W A K E?

A R E Y O U R E A L L Y A W A K E? A R E Y O U R E A L L Y A W A K E? ב ר ו ך א ת ה י י א לה ינ ו מ ל ך ה עו ל ם, ה מ ע ב יר ש נ ה מ ע ינ י ות נ ומ ה מ ע פ ע פ י Blessed are You, Hashem our God, King of the Universe, who removes sleep from

More information

תרגול 11 תור עץ חיפוש בינארי

תרגול 11 תור עץ חיפוש בינארי 2018 מבוא למדעי המחשב תרגול 11 תור עץ חיפוש בינארי ראינו בהרצאות מבני נתונים נוספים עצים בינאריים עצי חיפוש בינאריים תור מחסנית נראה בתרגול מבני נתונים חדשים תור ממשק + מימוש + שאלה עץ חיפוש בינארי תזכורת

More information

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk מכונת מצבים סופית תרגול מס' 4 1 מכונת מצבים סופית Finite State Machine (FSM) מודל למערכת ספרתית מכונת מצבים סופית: קלט: סדרה אינסופית של אותיות...,I3,I1,I2 בא"ב input out פלט: סדרה אינסופית של אותיות O

More information

פרק היררכי

פרק היררכי - 287-10 פרק בינרי עץ היררכי חוליות מבנה דמיינו לעצמכם משפחה: הורים, ילדים, נכדים וכן הלאה. אנו רוצים לשמור מידע על בני המשפחה ועל קשרי המשפחה ביניהם. כל מבני הנתונים שהכרנו עד עכשיו אינם מתאימים למטרה

More information

המבנה הגאומטרי של מידה

המבנה הגאומטרי של מידה התוכנה מאפשרת לרשום מידות מסוגים שונים בסרטוט, במגוון סגנונות ובהתאם לתקנים המקובלים. רצוי לבצע מתן מידות בשכבה המיועדת לכך. לכל מידה יש תכונות של בלוק. תהליך מתן המידות מתחיל תמיד מקביעת סגנון המידות.

More information

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

סהכ נקודות סהכ 31 נקודות סהכ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט מבחן 0220 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5

More information

מבוא למחשב בשפת פייתון

מבוא למחשב בשפת פייתון 234221 מבוא למחשב בשפת פייתון 3 מבני בקרה ולולאות פרופ' ראובן בר-יהודה דין לייטרסדורף הפקולטה למדעי המחשב הטכניון מכון טכנולוגי לישראל נערך ע"י יעל ארז 1 פקודות והזחות 2 פקודה פשוטה >>> 3+2 5 >>> x = 5

More information

פרק מיון וחיפוש - לשם מה? הגדרה

פרק מיון וחיפוש - לשם מה? הגדרה פרק מיון וחיפוש - לשם מה? מה הוא מיון? מיון נתונים הוא סידורם בסדר עולה או יורד. מיון יכול להיות מספרי או אלפביתי. ברשימת נתונים ממוינת ניתן לייעל את זמן איתור הנתונים. מה הוא חיפוש? חיפוש הוא תהליך איתור

More information

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת. 1 (Liquid Crystal Display) תצוגת LCD בפרויקט ישנה אפשרות לראות את כל הנתונים על גבי תצוגת ה- LCD באופן ברור ונוח. תצוגה זו היא בעלת 2 שורות של מידע בעלות 16 תווים כל אחת. המשתמש יכול לראות על גבי ה- LCD

More information

פרק עצמים א. טיפוסים חדשים ב. מצב של עצם

פרק עצמים א. טיפוסים חדשים ב. מצב של עצם - 9-2 פרק עצמים במחלקות שימוש עד היום הכרתם טיפוסי ערכים פשוטים המוגדרים בשפה כמו int ו- double, יצרתם משתנים היכולים להכיל ערכים מטיפוסים אלה והשתמשתם בהם לפתרון בעיות. על ערכים פשוטים אלה אפשר היה לבצע

More information

פרק מחלקות ממשק המחלקה צריך גם לדעת להגדיר בתוכניתו מחלקות לפי הצורך. בפרק זה נלמד להגדיר מחלקה ולממשה על סמך ממשק נתון.

פרק מחלקות ממשק המחלקה צריך גם לדעת להגדיר בתוכניתו מחלקות לפי הצורך. בפרק זה נלמד להגדיר מחלקה ולממשה על סמך ממשק נתון. - 37-3 פרק מחלקות ובנייה הגדרה בפרק הקודם ראינו כיצד ניתן להשתמש במחלקות קיימות על מנת ליצור עצמים, צריך גם לדעת להגדיר בתוכניתו מחלקות לפי הצורך. אך מתכנת בפרק זה נלמד להגדיר מחלקה ולממשה על סמך ממשק

More information

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 כל מה שמעצב משחקים צריך לדעת בשביל לעבוד עם מתכנתים משחק טקסט שעור 3 1P 0 AS3 2P 0 HIGH SCORE RANK SCORE NAME CREDI 15 1S 00079000 G. 2ND 00079000 S.G 3RD

More information

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש מאגר מעבדות לשפות התכנות החדשות ניתן להשתמש בחומרים לצורך הוראה בלבד. לא ניתן לפרסם את החומרים או לעשות בהם כל שימוש מסחרי ללא קבלת אישור מראש מצוות הפיתוח בראשות ד"ר תמר פז. המעבדה בקובץ זה מיועדת לתלמידים

More information

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 כל מה שמעצב משחקים צריך לדעת בשביל לעבוד עם מתכנתים משחק בול פגיעה שעור 2 1P 0 AS3 2P 0 HIGH SCORE RANK SCORE NAME CREDIT 15 1ST 00045000 I.M 2ND 00039500

More information

תרגול 8. Hash Tables

תרגול 8. Hash Tables תרגול Hash Tables ds-ps חידה מהשיעור הקודם בכל השקים המטבעות שוקלים ורק בשק אחד המטבעות שוקלים.. מותר לנו לבצע שקילה אחת בלבד! איך נדע מה השק הקל יותר? שקים עם מטבעות ds-ps מה היה לנו דיברנו על מבני נתונים

More information

למבחן ביסודות מדעי המחשב דוגמא

למבחן ביסודות מדעי המחשב דוגמא פרק א' למבחן ביסודות מדעי המחשב דוגמא כתוב תכנית הקולט מספר למשתנה N ולאחריו N מספרים שלמים ומדפיס את כמות המספרים המתחלקים ב 3 - ללא שארית. (10 נקודות). כתוב ביטוי בוליאני המייצג את התנאי הבא: ספרת העשרות

More information

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES Sinning in Disguise Like people of all faiths, Jews sometimes do things or go to places they are not supposed to. This session is not about

More information

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

מספר תז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה. עמוד 1 עמוד 1 מתוך 11, בחינה בתוכנה 1 מספר סידורי: מספר ת"ז: סמסטר א' תשע"ז, מועד א', 11 בפברואר 117 ליאור וולף, תומר עזרא, לנה דנקין משך הבחינה שלוש שעות יש להניח שהקוד שמופיע במבחן מתאים לגירסה 7 של

More information

מדעי המחשב מעבר על הרשימה למציאת המקום המתאים לאיבר. החזרת ה- value של ההפניה למינימום. הנחה: הרשימה לא ריקה.

מדעי המחשב מעבר על הרשימה למציאת המקום המתאים לאיבר. החזרת ה- value של ההפניה למינימום. הנחה: הרשימה לא ריקה. מדעי המחשב ב' פרק - ראשון מבני נתונים שאלה א. ייצוג: 1 O(n) פעולות הוספה ו-האם-קיים ב- O(n) פעולות הצג-מינימום ו- הוצא-מקסימום ב- (1)O רשימה דו-כיוונית ממוינת )בסדר עולה או יורד( )בגודל n( הפנייה לאיבר

More information

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות תכנות בסביבת האינטרנט 1 כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות כפתור רדיו משמש למקרים שבהם יש לבחור באפשרות אחת מתוך רשימת האפשרויות שבקבוצה. למשל: שאלון רב-ברירות )שאלון אמריקאי( שבו יש רק תשובה אחת

More information

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37 FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO. 652082/2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37 Translated from the Hebrew Sharf Translations Message sent From: Tomer Shohat

More information

חזרה, מיונים פולינה לוצקר

חזרה, מיונים פולינה לוצקר חזרה, מיונים פולינה לוצקר מבני נתונים ואלגוריתמים שיעורי בית- תזכורת.20.11 יש להגיש את התרגיל במערכת submit עד השעה 23:55 יש לממש את הערימה בחלק השני לבד- אני אבדוק! בתאריך יש להשתמש אך ורק במיון ערימה

More information

THINKING ABOUT REST THE ORIGIN OF SHABBOS

THINKING ABOUT REST THE ORIGIN OF SHABBOS Exploring SHABBOS SHABBOS REST AND RETURN Shabbos has a multitude of components which provide meaning and purpose to our lives. We will try to figure out the goal of Shabbos, how to connect to it, and

More information

מדריך לתכנת הגימפ Gimp) (The חלק מהמידע במדריך זה מובא מהקישור- http://www.jlc.org.il/forums/viewtopic.php?p=900&sid=d801ea3d13f7ae97549e28a56a4ce0cb GIMP היאתכנה חופשיתרבתאפשרויותבתחום הגראפיקהועריכתהתמונות,

More information

זה. Nir Adar

זה. Nir Adar גירסה 28.4.2003-1.00 האסמבלי של 8086 חלק שני מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך,

More information

אנגלית (MODULE E) בהצלחה!

אנגלית (MODULE E) בהצלחה! 3 בגרות סוג הבחינה: מדינת ישראל חורף תשע"ט, 2019 מועד הבחינה: משרד החינוך 016481 מספר השאלון: א. משך הבחינה: שעה ורבע אנגלית שאלון ה' (MODULE E) ג רסה א' הוראות לנבחן מבנה השאלון ומפתח ההערכה: בשאלון זה

More information

Depth-First Search DFS

Depth-First Search DFS Depth-First Search DFS (Depth-First Search) DFS חיפוש לרוחב חיפ וש לעומק (DFS) הוא אלג וריתם לסרי קת הגרפים. פועל גם על גרפים מ כוו נים וגם על בלתי מ כוו נים בהינתן גרף,G=(V,E) אלגוריתם DFS מבקר בכל הצמתים

More information

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור קארדינטת קטבית y p p p במישר,y הגדרנ נקדה על ידי המרחקים מהצירים. ז מערכת ישרת זית )קרטזית( אשר בה יש לנ צירים מאנכים זה לזה. באת מישר ניתן להגדיר נקדה על ידי זית רדיס קטר. (, ) הרדיס קטר מסתבב )נגד כין

More information

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי( בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"א, 2011 מועד הבחינה: משרד החינוך 016117 מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת א. משך הבחינה: שעה וחצי שאלון

More information

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary בגרות סוג הבחינה: מדינת ישראל קיץ תשע"ז, 2017, מועד ב מועד הבחינה: משרד החינוך 403 016104, מספר השאלון: אנגלית שאלון ג' (MODULE C) ג רסה א' הוראות לנבחן א. משך הבחינה: שעה וחצי ב. מבנה השאלון ומפתח ההערכה:

More information

Reflection Session: Sustainability and Me

Reflection Session: Sustainability and Me Goals: Participants will: identify needs in their home communities apply their sustainability learning to the conditions of their home communities design a sustainable project idea and evaluate the ideas

More information

2 יחידות לימוד הוראות לנבחן רשו ם "טיוטה" בראש כל עמוד טיוטה. רישום טיוטות כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה!

2 יחידות לימוד הוראות לנבחן רשו ם טיוטה בראש כל עמוד טיוטה. רישום טיוטות כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה! בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחנים חיצוניים ב. משרד החינוך קיץ תשע"ד, 2014 מועד הבחינה: 602 899222, מספר השאלון: מדעי המחשב 2 יחידות לימוד הוראות לנבחן משך הבחינה: שלוש

More information

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative Hebrew Ulpan HEB 011-031 Young Judaea Year Course in Israel American Jewish University College Initiative Course Description Hebrew is not only the Sacred Language of the Jewish people, but it is also

More information

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx 1 ברק גונן עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx לעיתים נרצה שהתוכנית תבצע פקודות רק אם מתקיים תנאי מוגדר

More information

A Long Line for a Shorter Wait at the Supermarket

A Long Line for a Shorter Wait at the Supermarket A Long Line for a Shorter Wait at the Supermarket - New York Times Page 1 of 4 A Long Line for a Shorter Wait at the Supermarket Sam Baris directing customers at Whole Foods in Columbus Circle, where the

More information

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

ANNEXURE E1-1 FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA) ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA) Dear Sirs, Re: Standby Letter of Credit No: Please advise the

More information

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים מבוא למדעי המחשב בשפת ++C חוברת תרגילים הגשת התרגילים היא ביחידים, יש להגיש במערכת ה moodle את כל הפרוייקט כקובץ.ZIP חובה להגיש תרגיל שמתקמפל + דוגמאות פלט של ההרצה. יש להקפיד על הדברים הבאים: שמות משתנים

More information

מבוא למדעי המחשב בשפת JAVA חוברת תרגילים... 1

מבוא למדעי המחשב בשפת JAVA חוברת תרגילים... 1 מבוא למדעי המחשב בשפת JAVA חוברת תרגילים תוכן עניינים מבוא למדעי המחשב בשפת JAVA חוברת תרגילים... 1 אבני הבניין של השפה... 2 תרגילי תחביר... 3.1.2 משפטי תנאי... 3 א. תרגילי תחביר ב. ג. תרגילי תחביר לולאות...

More information

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים מבוא למדעי המחשב בשפת ++C חוברת תרגילים הגשת התרגילים היא ביחידים, יש להגיש במערכת ה moodle את כל הפרוייקט כקובץ.ZIP חובה להגיש תרגיל שמתקמפל + דוגמאות פלט של ההרצה. יש להקפיד על הדברים הבאים: שמות משתנים

More information

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית. בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. א. משך הבחינה: שעה ורבע מועד הבחינה: חורף תשס"ז, 2007 מספר השאלון: 406 016107, א נ ג ל י

More information

לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים

לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים 1 ברק גונן נלמד את הפקודות הבסיסיות של אסמבלי הגדרת משתנים ופקודת העתקה )מצגת 6( פקודות אריתמטיות, לוגיות, הזזה )מצגת 7( פקודות השוואה, קפיצה ולולאות )מצגת 8( בחלקים: לאחר מכן נוכל לכתוב תוכניות שכוללות

More information

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 כל מה שמעצב משחקים צריך לדעת בשביל לעבוד עם מתכנתים תנועה בעזרת קוד שעור 9 הישגיים 2 1P 0 AS3 2P 0 HIGH SCORE RANK SCORE NAME CREDIT 15 1ST 00472000 G.F 2ND

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. קיץ תשע"ד, מועד ב, 2014 מועד הבחינה: מספר השאלון: 416 016117, Thinking Skills נספח: כישורי

More information

תאריך הבחינה: מבוא למדעי המחשב ד "ר פז כרמי פרופ' מייק קודיש ד "ר חן קיסר ד "ר צחי רוזן שם הקורס: מבוא למדעי המחשב מספר הקורס:

תאריך הבחינה: מבוא למדעי המחשב ד ר פז כרמי פרופ' מייק קודיש ד ר חן קיסר ד ר צחי רוזן שם הקורס: מבוא למדעי המחשב מספר הקורס: מבוא למדעי המחשב 202-1-1011 מבחן אנא קראו את ההוראות שלהלן בעיון: תאריך הבחינה: 622011 שמות המרצים: מר שי זקוב ד "ר פז כרמי פרופ' מייק קודיש ד "ר חן קיסר ד "ר צחי רוזן שם הקורס: מבוא למדעי המחשב מספר הקורס:

More information

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א' תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך מקום להדבקת מדבקת נבחן א נ ג ל י ת סוג בחינה: מועד הבחינה: מספר השאלון: מבחן מטה לבתי ספר תיכוניים חורף תשע"ד 29.01.2014 מותאם לשאלון א' של בחינת הבגרות שסמלו

More information

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. קיץ תשע"ד, מועד ב, 2014 מועד הבחינה: מספר השאלון: 414 016115, Thinking Skills נספח: כישורי

More information

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד רשתות מחשבים עומר רוזנבוים 1 DNS פרק 4 ג' שכבת האפליקציה, פרוטוקול ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים מאת 1 בסיום הפרק נדע: מה תפקיד פרוטוקול?DNS לשם מה צריך?DNS מהי ההיררכיה של כתובות דפי האינטרנט? מהו,TLD

More information

בהוראה: הפעולה new מקצה זיכרון עבור עצם בשם s1 המפנה לזיכרון שהוקצה. במקרה זה העצם s1. System.out.println("Enter two numbers:"); String s1;

בהוראה: הפעולה new מקצה זיכרון עבור עצם בשם s1 המפנה לזיכרון שהוקצה. במקרה זה העצם s1. System.out.println(Enter two numbers:); String s1; פרק 9 המחלקה מחרוזת (String) בתוכניות שכתבנו עד כה השתמשנו בטיפוסים שונים המוגדרים בשפת :Java שלם, ממשי, תווי ובוליאני. יכולנו להגדיר משתנים מטיפוסים אלו ולבצע עליהם פעולות שונות (קלט, פלט, חישובים וכו').

More information

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש מאגר מעבדות לשפות התכנות החדשות ניתן להשתמש בחומרים לצורך הוראה בלבד. לא ניתן לפרסם את החומרים או לעשות בהם כל שימוש מסחרי ללא קבלת אישור מראש מצוות הפיתוח בראשות ד"ר תמר פז. המעבדה בקובץ זה מיועדת לתלמידים

More information

בהצלחה מועד א אנא קראו היטב את ההוראות שלהלן: תאריך המבחן: 9/7/2017 המרצים: ד"ר צחי רוזן מר דן בורנשטיין מר ניר גלעד

בהצלחה מועד א אנא קראו היטב את ההוראות שלהלן: תאריך המבחן: 9/7/2017 המרצים: דר צחי רוזן מר דן בורנשטיין מר ניר גלעד תאריך המבחן: 9/7/2017 המרצים: ד"ר צחי רוזן מר דן בורנשטיין מר ניר גלעד מועד א אנא קראו היטב את ההוראות שלהלן: שם הקורס: מבוא למדעי המחשב מספר הקורס: 202-1-1011 שנה: 2017 סמסטר: ב מועד: א משך המבחן: שלוש

More information

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך מקום להדבקת מדבקת נבחן סוג בחינה: מועד הבחינה: מספר השאלון: מבחן מטה לבתי ספר תיכוניים חורף תשע"ד 29.01.2014 מותאם לשאלון ב' של בחינת הבגרות שסמלו 016103 א

More information

שאלון ו' הוראות לנבחן

שאלון ו' הוראות לנבחן סוג הבחינה: א. בגרות לבתי ספר על- יסודיים ב. בגרות לנבחני משנה ג. בגרות לנבחנים אקסטרניים מועד הבחינה: תשס"ו, מועד ב מספר השאלון: 406 016107, י ת ל ג נ א שאלון ו' )MODULE F( הוראות לנבחן א. משך הבחינה:

More information

פרק יעילות היעילות של קריטריון המקום עוסק בנושאים דומים לאלה של קריטריון הזמן. אנו נתרכז בחישובי היעילות של מדד הזמן.

פרק יעילות היעילות של קריטריון המקום עוסק בנושאים דומים לאלה של קריטריון הזמן. אנו נתרכז בחישובי היעילות של מדד הזמן. - 115-5 פרק יעילות יש יותר מדרך אחת לפצח אגוז. אפשר להניחו על הרצפה ולרקוע עליו, אפשר לפצחו בעזרת השיניים או להיעזר באגוז נוסף, ואפשר כמובן להשתמש במפצח אגוזים. בכל הדרכים נשיג את מטרתנו אגוז מפוצח. מבחינת

More information

פולימורפיזם. blog.csit.org.il מדעי המחשב

פולימורפיזם. blog.csit.org.il מדעי המחשב 1 פולימורפיזם להסתכל על אותו אובייקט בצורות שונות. אובייקט של תת-מחלקה )המחלקה הנגזרת( הוא גם אובייקט של מחלקת העל )מחלקת הבסיס( )כלב הוא גם בעל-חיים וגם יונק(. פולימורפיזם מאפשר להשיג שתי מטרות: לטפל

More information

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G) 3 בגרות סוג הבחינה: מדינת ישראל חורף תשע"ט, 2019 מועד הבחינה: משרד החינוך 016582 מספר השאלון: א. משך הבחינה: שעה וארבעים וחמש דקות אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן מבנה השאלון ומפתח ההערכה:

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"ב, מועד ב מועד הבחינה: משרד החינוך מספר השאלון: 016117 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א. משך הבחינה: שעה וחצי אנגלית שאלון

More information

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5 FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO. 652082/2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5 McLaughlin, Terence K. From: Sent: To: Cc: Subject: Follow Up Flag: Flag Status:

More information

שאלון ד' הוראות לנבחן

שאלון ד' הוראות לנבחן סוג הבחינה: א. בגרות לבתי ספר על- יסודיים ב. בגרות לנבחני משנה ג. בגרות לנבחנים אקסטרניים מועד הבחינה: תשס"ה, מועד ב מספר השאלון: 404 016105, י ת ל ג נ א שאלון ד' )MODULE D( הוראות לנבחן א. משך הבחינה:

More information

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names. Advisor Copy Before we begin, I would like to highlight a few points: Goal: 1. It is VERY IMPORTANT for you as an educator to put your effort in and prepare this session well. If you don t prepare, it

More information

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

ãówh,é ËÓÉÔê ÌW W É Å t Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH * .1.2.3 (X).1.2.3.4.5.6 בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל חורף תשע"ג, 2013 מועד הבחינה: משרד החינוך מספר השאלון: 016117 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית שאלון

More information

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of Name Page 1 of 6 ***Place an X if Closed גמרא (if no indication, we ll assume Open חזרה (גמרא of the :דף times.בל 'נ marked, using the contact info above by Sunday, December 25, 2016 and we ll send it

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"ג, 2013 מועד הבחינה: משרד החינוך מספר השאלון: 016115 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית שאלון ד' (MODULE D) א. משך הבחינה:

More information

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי ) בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. חורף תשע"ג, 2013 מועד הבחינה: 407 016108, מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית

More information

חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק(

חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק( חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק( התשע"ב - 2012 חברות וחברי לשכה יקרים, אני שמח להגיש לכם חוברת זו בה תמצאו את חוק זכויות הסוכן בנוסחו המקורי ואת תרגומו לאנגלית על ידי עו"ד שוש רבינוביץ,

More information

(MODULE E) ב ה צ ל ח ה!

(MODULE E) ב ה צ ל ח ה! סוג הבחינה: א. בגרות לבתי ספר על- יסודיים ב. בגרות לנבחני משנה מועד הבחינה: קיץ תשס"ד, 2004 מספר השאלון: 016106 י ת ל ג נ א שאלון ה' (MODULE E) הוראות לנבחן א. משך הבחינה: שעה ורבע בשאלון זה שני פרקים.

More information

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה! בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. חורף תשס"ח, 2008 מועד הבחינה: מספר השאלון: 402 016103, א. משך הבחינה: שעה ורבע א נ ג ל י

More information

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

מבוא לרשתות - תרגול מס' 11 Transparent Bridges מבוא לרשתות - תרגול מס' 11 Transparent Bridges גשרים: מוטיבציה המטרה: חיבור של כמה רשתות מקומיות ) LAN -ים( לרשת מורחבת אחת על מנת לאפשר תקשורת בין מחשבים שאינם מחוברים לאותה רשת מקומית.?)ports עם מס'

More information

מערכים Haim Michael. All Rights Reserved.

מערכים Haim Michael. All Rights Reserved. 1 מערכים יצירת מערך הפונקציה var_dump הפונקציה print_r אופן הפעולה של מערך מערך דו מימדי הפקודה list האופרטור,+,==,===!= ו-!== הפונקציה count הפונקציה is_array הפונקציה isset הפונקציה array_key_exists

More information

יחידה ארגון המחשב ושפת סף: שאלות תרגול

יחידה ארגון המחשב ושפת סף: שאלות תרגול פרק א יחידה 711998 ארגון המחשב ושפת סף: שאלות תרגול 1. נתון המספר השלילי 0eah )בגודל בית(, בייצוג משלים ל- 2. איזה מהמספרים הבאים הוא ערכו בעשרוני? א. -21 ב. -22 ג. -22 ד. -222 2. נתון המספר השלילי 0edh

More information

מבחן מועד ב' אנא קיראו היטב את ההראות שלהלן:

מבחן מועד ב' אנא קיראו היטב את ההראות שלהלן: מבחן מועד ב' תאריך הבחינה: 3.3.2015 שמות המרצים: דר' רועי זיון פרופ' משה זיפר פרופ' מיכאל קודיש דר' צחי רוזן גב' מיכל שמש שם הקורס: מבוא למדעי המחשב אנא קיראו היטב את ההראות שלהלן: מספר הקורס: 202-1-1011

More information

מטוסים נופלים, כורים מתפוצצים זיכרון אוטומטי מקטסטרופות לומדים בניינים קורסים,

מטוסים נופלים, כורים מתפוצצים זיכרון אוטומטי מקטסטרופות לומדים בניינים קורסים, 2 חלק עצמים ומחלקות בהנדסה קורות לעיתים קטסטרופות: מטוסים נופלים, כורים מתפוצצים בניינים קורסים, מקטסטרופות לומדים בעולם המחשבים, רוב הקטסטרופות התבטאו בכישלון לפתח תוכנה גדולה או בכישלון להשמיש תוכנה

More information

שאלון ו' הוראות לנבחן

שאלון ו' הוראות לנבחן סוג הבחינה: א. בגרות לבתי ספר על- יסודיים ב. בגרות לנבחני משנה ג. בגרות לנבחנים אקסטרניים מועד הבחינה: תשס"ה, מועד ב מספר השאלון: 406 016107, י ת ל ג נ א שאלון ו' )MODULE F( הוראות לנבחן א. משך הבחינה:

More information

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה! בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. תשס"ז, מועד ב מועד הבחינה: מספר השאלון: 402 016103, א. משך הבחינה: שעה ורבע א נ ג ל י ת

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"ב, מועד ב מועד הבחינה: משרד החינוך מספר השאלון: 016115 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית שאלון ד' (MODULE D) א. משך הבחינה:

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"ב, 2012 מועד הבחינה: משרד החינוך מספר השאלון: 016115 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית שאלון ד' (MODULE D) א. משך הבחינה:

More information

מושגים בסיסיים תלמידים והורים יקרים,

מושגים בסיסיים תלמידים והורים יקרים, אחוזים מושגים בסיסיים תלמידים והורים יקרים, לפניכם קובץ ובו מושגים בסיסיים בשאלות אחוזים. הקובץ מכיל 12 מושגים. רצוי לעבור על חומר הלימוד לפני המעבר על המבחנים. ניתן להדפיס קובץ זה כדי שיהיה לפני התלמיד/ה

More information

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. חורף תשע"ג, 2013 מועד הבחינה: 403 016104, מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית

More information

Redirection The Input Buffer

Redirection The Input Buffer מבוא לשפת C תירגול 3: טיפוסים והמרות 1 מה היה שבוע שעבר? משתנים קלט/פלט scanf) ו- printf ) Redirection The Input Buffer 2 תוכנייה טיפוסי משתנים קלט/פלט מעוצב המרה בין טיפוסים 3 חישוב ממוצע בין שני מספרים

More information

הקיטסיגול הרבחה יעדמל בלושמה גוחה

הקיטסיגול הרבחה יעדמל בלושמה גוחה ניהול מערכות תובלה ושינוע זרימה ברשת עץ פורס מינימאלי Minimal Spanning Tree הבעיה: מציאת חיבור בין כל קודקודי גרף במינימום עלות שימושים: פריסת תשתית אלגוריתם חמדן (Greedy) Kruskal(1956) Prim(1957) השוואה

More information

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

לתוכנה שכותבים, כמו פונקציה זו, קוראים קוד הגדרת פונקציות מבוא לתכנות מדעי וסטטיסטי R פונקציות, ו חלק 4 בנוסף לפונקציות שמגיעות מוכנות יחד עם המערכת exp) mean,,c וכו'), אפשר לכתוב פונקציות חדשות פונקציות נקראות לעתים "פרוצדורות" או "סאב-רוטינות"

More information